Compilerfehler C2951

Aktualisiert: November 2007

Fehlermeldung

Typdeklarationen sind nur im globalen, Namespace- oder Klassengültigkeitsbereich zulässig
type declarations are only permitted at global, namespace, or class scope

Sie können eine generische oder eine Vorlagenklasse nicht außerhalb des globalen oder des Namespace-Gültigkeitsbereichs deklarieren. Wenn Sie die generischen oder die Vorlagendeklarationen in einer Includedatei vornehmen, muss die Includedatei innerhalb des globalen Gültigkeitsbereichs verfügbar sein.

Im folgenden Beispiel wird C2951 generiert:

// C2951.cpp
template <class T>
class A {};

int main() {
   template <class T>   // C2951
   class B {};
}

C2951 kann auch auftreten, wenn Generika verwendet werden:

// C2951b.cpp
// compile with: /clr /c

// OK
generic <class T> 
ref class GC { };

int main() {
   generic <class T> ref class GC2 {};   // C2951
}