Compiler Error C2926
'type' : local types or unnamed types cannot be used as type arguments
You cannot instantiate a generic or template class based on a local or unnamed type. Types used to instantiate must have external linkage.
The following sample generates C2926:
// C2926.cpp
// compile with: /Za
template<class T>
class X {};
struct Z{};
int main() {
struct Y{};
X<Y> x; // C2926
X<Z> x2; // OK
}