1 // PR c++/67131 2 // { dg-do compile { target c++14 } } 3 4 template <typename T> typename T::_ type; 5 template <template <typename...> class> struct A; 6 template <template <typename> class f> A<f> metafunction; 7 namespace detail { 8 template <typename> struct _decltype; 9 } 10 template <template <typename...> class F> struct A { 11 template <typename... T> 12 auto operator()() -> decltype(type<F<detail::_decltype<T>...>>); 13 }; 14 template <typename F> auto valid_call(F f) -> decltype(f()); valid_call(...)15constexpr auto valid_call(...) { return 0; } 16 template <typename> struct no_type; 17 static_assert(!valid_call(metafunction<no_type>),""); 18