// { dg-do compile { target c++11 } } | |
// PR c++/33939 | |
template<typename T> | |
struct refs_only; | |
template<typename T> | |
struct refs_only<T &> | |
{}; | |
template<typename T> | |
refs_only<T> foo( T && t) | |
{ | |
return refs_only<T>(); | |
} | |
template<typename... T> | |
struct va_refs_only; | |
template<typename T> | |
struct va_refs_only<T> | |
: refs_only<T> | |
{}; | |
template<typename... T> | |
va_refs_only<T...> bar( T &&... t) | |
{ | |
return va_refs_only<T...>(); | |
} | |
int main() | |
{ | |
int j = 0; | |
foo(j); | |
bar(j); // error: invalid use of incomplete type 'struct refs_only<int>' | |
} | |