Compilerfehler C2926

Aktualisiert: November 2007

Fehlermeldung

'Typ': Lokale oder unbenannte Typen können nicht als Typargumente verwendet werden
'type' : local types or unnamed types cannot be used as type arguments

Eine generische oder auf einem lokalen oder unbenannten Typ basierte Vorlagenklasse kann nicht instanziiert werden. Für die Instanziierung verwendete Typen müssen extern verknüpft sein.

Im folgenden Beispiel wird C2926 generiert:

// C2926.cpp
// compile with: /Za
template<class T> 
class X {};
struct Z{};

int main() {
   struct Y{};
    X<Y> x;   // C2926
    X<Z> x2;   // OK
}