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