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 37