| // PR c++/60153 | |
| // { dg-do compile { target c++11 } } | |
| enum class foo :int {x,y,z}; | |
| template <int a, foo b> | |
| class A | |
| { | |
| public: | |
| A() | |
| { | |
| } | |
| }; | |
| template <typename T> | |
| struct B | |
| { | |
| typedef T value_type; | |
| static const T val; | |
| }; | |
| template <typename... B> | |
| struct madscience_intitializer | |
| { | |
| template <typename B::value_type... args> | |
| using ret_type = A<args...>; | |
| }; | |
| int main() | |
| { | |
| madscience_intitializer<B<int>,B<foo> >::ret_type<1,foo::y> a; | |
| } |