2 // { dg-do compile { target c++11 } }
5 static constexpr bool value = false;
9 static constexpr bool value = true;
13 T&& declval() noexcept;
15 template<typename T, typename U, typename = U>
16 struct is_static_castable : false_type
18 template<typename T, typename U>
19 struct is_static_castable<T, U, decltype(static_cast<U>(declval<T>()))> : true_type
24 class B: public Base { };
28 constexpr auto canCast = is_static_castable<A, B>::value;
29 static_assert(!canCast, "");
30 constexpr auto canCast2 = is_static_castable<A, A>::value;
31 static_assert(canCast2, "");