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()29int main() 30 { 31 madscience_intitializer<B<int>,B<foo> >::ret_type<1,foo::y> a; 32 } 33