1 // { dg-do compile { target c++11 } } 2 // PR c++/34055 3 template<typename...> struct A; 4 5 template<typename...T> struct A<T*> // { dg-error "parameter packs|T" } 6 { 7 void foo(); 8 }; 9 10 template<typename...T> void A<T*>::foo() {} // { dg-error "invalid declarator" } 11 12 13 14 template<typename...> struct B; 15 16 template<typename...T> struct B<T&> // { dg-error "parameter packs|T" } 17 { 18 void foo(); 19 }; 20 21 template<typename...T> void B<T&>::foo() {} // { dg-error "invalid declarator" } 22 23 24 template<typename...> struct C; 25 26 template<typename...T> struct C<T()> // { dg-error "parameter packs|T" } 27 { 28 void foo(); 29 }; 30 31 template<typename...T> void C<T()>::foo() {} // { dg-error "invalid declarator" } 32