PR c++/85765 - SFINAE and non-type default template arg.
[official-gcc.git] / gcc / testsuite / g++.dg / cpp0x / variadic-rref.C
blobee90c9b873165527e79e2df763d67439024694ee
1 // { dg-do compile { target c++11 } }
2 // PR c++/33939
3 template<typename T>
4 struct refs_only;
6 template<typename T>
7 struct refs_only<T &>
8 {};
10 template<typename T>
11 refs_only<T> foo( T && t)
13     return refs_only<T>();
16 template<typename... T>
17 struct va_refs_only;
19 template<typename T>
20 struct va_refs_only<T>
21   : refs_only<T>
22 {};
24 template<typename... T>
25 va_refs_only<T...> bar( T &&... t)
27     return va_refs_only<T...>();
30 int main()
32     int j = 0;
33     foo(j);
34     bar(j); // error: invalid use of incomplete type 'struct refs_only<int>'