1 // PR c++/60153
2 // { dg-do compile { target c++11 } }
3 
4 enum class foo :int {x,y,z};
5 
6 template <int a, foo b>
7 class A
8 {
9 public:
A()10   A()
11   {
12   }
13 };
14 
15 template <typename T>
16 struct B
17 {
18   typedef T value_type;
19   static const T val;
20 };
21 
22 template <typename... B>
23 struct madscience_intitializer
24 {
25   template <typename B::value_type... args>
26   using ret_type = A<args...>;
27 };
28 
main()29 int main()
30 {
31   madscience_intitializer<B<int>,B<foo> >::ret_type<1,foo::y> a;
32 }
33