OSDN Git Service

PR c++/37256
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / cpp0x / variadic-rref.C
1 // { dg-options "-std=c++0x" }
2 // PR c++/33939
3 template<typename T>
4 struct refs_only;
5
6 template<typename T>
7 struct refs_only<T &>
8 {};
9
10 template<typename T>
11 refs_only<T> foo( T && t)
12 {
13     return refs_only<T>();
14 }
15
16 template<typename... T>
17 struct va_refs_only;
18
19 template<typename T>
20 struct va_refs_only<T>
21   : refs_only<T>
22 {};
23
24 template<typename... T>
25 va_refs_only<T...> bar( T &&... t)
26 {
27     return va_refs_only<T...>();
28 }
29
30 int main()
31 {
32     int j = 0;
33     foo(j);
34     bar(j); // error: invalid use of incomplete type 'struct refs_only<int>'
35 }
36