2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / sfinae22.C
blob2c55b8a182790c0c3e46b289685d5c0131136346
1 // PR c++/48745
2 // { dg-do compile { target c++11 } }
4 template<class T>
5 struct add_rval_ref {
6   typedef T&& type;
7 };
9 template<>
10 struct add_rval_ref<void> {
11   typedef void type;
14 template<class T>
15 typename add_rval_ref<T>::type create();
17 template<class T, class... Args>
18 decltype(T{create<Args>()...}, char()) f(int);
20 template<class, class...>
21 char (&f(...))[2];
23 static_assert(sizeof(f<int, void>(0)) != 1, "Error"); // #