| // { dg-do compile { target c++11 } } |
| // PR c++/34055 |
| template<typename...> struct A; |
| |
| template<typename...T> struct A<T*> // { dg-error "parameter packs|T" } |
| { |
| void foo(); |
| }; |
| |
| template<typename...T> void A<T*>::foo() {} // { dg-error "invalid declarator" } |
| |
| |
| |
| template<typename...> struct B; |
| |
| template<typename...T> struct B<T&> // { dg-error "parameter packs|T" } |
| { |
| void foo(); |
| }; |
| |
| template<typename...T> void B<T&>::foo() {} // { dg-error "invalid declarator" } |
| |
| |
| template<typename...> struct C; |
| |
| template<typename...T> struct C<T()> // { dg-error "parameter packs|T" } |
| { |
| void foo(); |
| }; |
| |
| template<typename...T> void C<T()>::foo() {} // { dg-error "invalid declarator" } |