$ g++-7 -c test.ii
test.ii:18:21: error: parameter '<anonymous>' includes reference to array of unknown bound 'const long int []'
b(const long (&)[]); ^
test.ii:23: confused by earlier errors, bailing out
$ g++-9 -c test.ii
test.ii:23:16: error: call of overloaded 'b(<brace-enclosed initializer list>)' is ambiguous
23 | blaspp<1> k({4})
| ^
test.ii:18:3: note: candidate: 'b::b<l, f, 0, f, baseclass<g, h, true, i>, j ...>::b(const long int (&)[]) [with l = double; long unsigned int f = 1; baseclass = a; int g = 0; int h = 1; i = void; j = {}]'
18 | b(const long (&)[]);
| ^
test.ii:17:3: note: candidate: 'b::b<l, f, 0, f, baseclass<g, h, true, i>, j ...>::b(long int) [with l = double; long unsigned int f = 1; baseclass = a; int g = 0; int h = 1; i = void; j = {}]'
17 | b(long);
| ^
test.ii:16:7: note: candidate: 'constexpr b::b<double, 1, 0, 1, a<0, 1, true, void> >::b(const b::b<double, 1, 0, 1, a<0, 1, true, void> >&)'
16 | class b<l, f, 0, f, baseclass<g, h, true, i>, j...> {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test.ii:16:7: note: candidate: 'constexpr b::b<double, 1, 0, 1, a<0, 1, true, void> >::b(b::b<double, 1, 0, 1, a<0, 1, true, void> >&&)'
test.ii:23:16: error: expected ',' or ';' at end of input
23 | blaspp<1> k({4})
| ^
$ g++-7 -c test.ii
^
test.ii:18:21: error: parameter '<anonymous>' includes reference to array of unknown bound 'const long int []'
b(const long (&)[]);
test.ii:23: confused by earlier errors, bailing out
$ g++-9 -c test.ii ~~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~~~ ~~~
test.ii:23:16: error: call of overloaded 'b(<brace-enclosed initializer list>)' is ambiguous
23 | blaspp<1> k({4})
| ^
test.ii:18:3: note: candidate: 'b::b<l, f, 0, f, baseclass<g, h, true, i>, j ...>::b(const long int (&)[]) [with l = double; long unsigned int f = 1; baseclass = a; int g = 0; int h = 1; i = void; j = {}]'
18 | b(const long (&)[]);
| ^
test.ii:17:3: note: candidate: 'b::b<l, f, 0, f, baseclass<g, h, true, i>, j ...>::b(long int) [with l = double; long unsigned int f = 1; baseclass = a; int g = 0; int h = 1; i = void; j = {}]'
17 | b(long);
| ^
test.ii:16:7: note: candidate: 'constexpr b::b<double, 1, 0, 1, a<0, 1, true, void> >::b(const b::b<double, 1, 0, 1, a<0, 1, true, void> >&)'
16 | class b<l, f, 0, f, baseclass<g, h, true, i>, j...> {
| ^~~~~~~
test.ii:16:7: note: candidate: 'constexpr b::b<double, 1, 0, 1, a<0, 1, true, void> >::b(b::b<double, 1, 0, 1, a<0, 1, true, void> >&&)'
test.ii:23:16: error: expected ',' or ';' at end of input
23 | blaspp<1> k({4})
| ^