I wanted to explicit instantiate a template, when I ran into the fact that I need to use a elaborated type specifier.
At cppreference it is state that:
If the (class-)name refers to a typedef name, a type alias, a template type parameter, or an alias template specialization, the program is ill-formed,...
I would like to have a bit of an understanding why it is this way. (with special interest in the typedef part)
edit:
using MyType = MyTemplate<Many,Parameters>;
template class MyType; // invalid code
From here I learned that this restriction only holds for MyType
and that it is okay for Many
and Parameters
to be typedefs.