]>
Commit | Line | Data |
---|---|---|
bc3e284b | 1 | // { dg-do compile { target c++11 } } |
d6a85c8d DG |
2 | template <class... Types> class A |
3 | { | |
4 | public: | |
bc3e284b | 5 | template <Types... Values> class X { /* ... */ }; // { dg-error "not a valid type for a template non-type parameter" } |
d6a85c8d DG |
6 | }; |
7 | ||
8 | template<class... Types> class B | |
9 | { | |
10 | public: | |
11 | template <Types*... Values> class X { | |
12 | typename A<Types*...>::template X<Values...> foo; | |
13 | }; | |
14 | }; | |
15 | ||
16 | int i; | |
17 | float f; | |
18 | ||
19 | A<int*, float*>::X<&i, &f> apple1; | |
20 | B<int, float>::X<&i, &f> banana1; | |
21 | ||
0621f7c2 | 22 | A<int*, float*>::X<&i> apple2; // { dg-error "wrong number of template arguments" "wrong number" } |
0621f7c2 | 23 | A<int*, float*>::X<&i, &f, &f> apple3; // { dg-error "wrong number of template arguments" "wrong number" } |
d6a85c8d | 24 | A<int, float> apple4; |
b0ff7fe1 JM |
25 | |
26 | // { dg-prune-output "provided for" } |