1 // Origin PR c++/51289 2 // { dg-options "-std=c++11" } 3 4 template<typename a, template <typename, typename> class b> 5 struct foo { 6 template <typename t> 7 using type = b<a, t>; 8 template <typename t> funcafoo9 b<a, t> funca() {} 10 11 template <typename t> funcbfoo12 type<t> funcb() {} 13 }; 14 15 // This is an additional test, to emit an error message when using 16 // unexpanded parameter packs in an alias declaration. 17 template <class ... T> 18 struct S {}; 19 20 template<class ... T> 21 using A = S<T>; // { dg-error "parameter packs not expanded" } 22