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