struct __do_is_destructible_impl { template static bool __test(int); template static float __test(...); }; template struct __is_destructible_impl : public __do_is_destructible_impl { // Requires BINFO merging typedef decltype(__test<_Tp>(0)) type; };