Partilhar via


Erro do compilador C2951

As declarações de tipo só são permitidas no âmbito global, de espaço de nomes ou de classe

Observações

Não é possível declarar uma classe genérica ou de modelo fora do escopo global ou de namespace. Se você fizer suas declarações genéricas ou de modelo em um arquivo include, verifique se o arquivo include está no escopo global.

Examples

O exemplo a seguir gera C2951:

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

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

C2951 também pode ocorrer quando se utilizam genéricos:

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

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

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