PR c++/85765 - SFINAE and non-type default template arg.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / sfinae33.C
blobf543c1f24375ca175c8ca609f21bf73ba6a9d2dc
1 // PR c++/52422
2 // { dg-do compile { target c++11 } }
4 template<class T>
5 struct add_rval_ref
7   typedef T&& type;
8 };
10 template<>
11 struct add_rval_ref<void>
13   typedef void type;
16 template<class T>
17 typename add_rval_ref<T>::type create();
19 template<class T, 
20   class = decltype(create<T>()())
22 auto f(int) -> char(&)[1];
24 template<class>
25 auto f(...) -> char(&)[2];
27 static_assert(sizeof(f<void>(0)) != 1, "");