Udostępnij za pomocą


Błąd kompilatora C2951

deklaracje typów są dozwolone tylko w zakresie globalnym, przestrzeni nazw lub klasy

Uwagi

Nie można zadeklarować klasy ogólnej lub szablonu poza zakresem globalnym lub przestrzeni nazw. Jeśli wprowadzisz deklaracje ogólne lub szablonu w pliku dołączania, upewnij się, że plik dołączania jest w zakresie globalnym.

Przykłady

Poniższy przykład generuje kod C2951:

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

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

C2951 może również wystąpić w przypadku używania typów ogólnych:

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

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

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