// PR c++/102305 // { dg-do compile { target c++11 } } namespace std { template struct integral_constant { static constexpr _Tp value = __v; typedef integral_constant<_Tp, __v> type; }; template constexpr _Tp integral_constant<_Tp, __v>::value; typedef integral_constant true_type; typedef integral_constant false_type; template using bool_constant = integral_constant; template struct is_constructible : public bool_constant<__is_constructible(_Tp, _Args...)> { }; } template struct A { virtual ~A() = 0; }; struct B { virtual ~B() = 0; }; static_assert(!std::is_constructible >::value, ""); static_assert(!std::is_constructible::value, "");