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
}