Teilen über


Compilerfehler C2951

Typendeklarationen sind nur im globalen, Namespace- oder Klassenbereich zulässig.

Bemerkungen

Sie können eine generische oder Vorlagenklasse außerhalb des globalen oder Namespacebereichs nicht deklarieren. Wenn Sie ihre generischen Deklarationen oder Vorlagendeklarationen in einer Einschließendatei vornehmen, stellen Sie sicher, dass die Includedatei global festgelegt ist.

Examples

Im folgenden Beispiel wird C2951 generiert:

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

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

C2951 kann auch bei Verwendung von Generika auftreten:

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

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

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