1
2 struct __do_is_destructible_impl
3 {
4 template<typename _Tp, typename = decltype(_Tp().~_Tp())>
5 static bool __test(int);
6
7 template<typename>
8 static float __test(...);
9 };
10
11 template<typename _Tp>
12 struct __is_destructible_impl
13 : public __do_is_destructible_impl
14 {
15 // Requires BINFO merging
16 typedef decltype(__test<_Tp>(0)) type;
17 };