| // { 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>' | |
| } | |