| // Origin PR c++/51289 | |
| // { dg-do compile { target c++11 } } | |
| template<typename a, template <typename, typename> class b> | |
| struct foo { | |
| template <typename t> | |
| using type = b<a, t>; | |
| template <typename t> | |
| b<a, t> funca() {} | |
| template <typename t> | |
| type<t> funcb() {} | |
| }; | |
| // This is an additional test, to emit an error message when using | |
| // unexpanded parameter packs in an alias declaration. | |
| template <class ... T> | |
| struct S {}; | |
| template<class ... T> | |
| using A = S<T>; // { dg-error "parameter packs not expanded" } |