PR c++/85765 - SFINAE and non-type default template arg.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / sfinae17.C
blobc56a5d4198cf29cdebc76810a601fda558c828f0
1 // PR c++/48530
2 // { dg-do compile { target c++11 } }
4 template<class T,
5          class = decltype(T{})
7 char f(int);
9 template<class>
10 char (&f(...))[2];
12 struct DelDtor {
13   ~DelDtor() = delete;
16 static_assert(sizeof(f<DelDtor[2]>(0)) != 1, "Error");
18 struct A
20   static DelDtor *p;
23 template<class T,
24          class = decltype(delete T::p, (T*)0)
26 char g(int);
28 template<class>
29 char (&g(...))[2];
31 static_assert(sizeof(g<DelDtor>(0)) != 1, "Error");