view gcc/testsuite/g++.dg/cpp1y/var-templ42.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// PR c++/67131
// { dg-do compile { target c++14 } }

template <typename T> typename T::_ type;
template <template <typename...> class> struct A;
template <template <typename> class f> A<f> metafunction;
namespace detail {
template <typename> struct _decltype;
}
template <template <typename...> class F> struct A {
  template <typename... T>
  auto operator()() -> decltype(type<F<detail::_decltype<T>...>>);
};
template <typename F> auto valid_call(F f) -> decltype(f());
constexpr auto valid_call(...) { return 0; }
template <typename> struct no_type;
static_assert(!valid_call(metafunction<no_type>),"");