// PR c++/98620 // { dg-do compile { target c++11 } } namespace std { template T&& declval() noexcept; template struct bool_constant { static constexpr bool value = B; using type = bool_constant; }; using true_type = bool_constant; using false_type = bool_constant; }; template struct TmpArray { T arr[1]; }; template struct is_non_narrowing_conversion : std::false_type {}; template struct is_non_narrowing_conversion< Src, Dst, decltype(void(TmpArray{{ std::declval() }})) // { dg-bogus "missing initializer" } > : std::true_type {}; struct mystruct { int a; void * b; }; void test_nok() { is_non_narrowing_conversion::type v; (void) v; }