Partilhar via


Erro do compilador C2944

'class' : identificador-de-classe-tipo redefinido como argumento de valor de um template

Observações

Não é possível usar uma classe genérica ou de modelo, em vez de um símbolo, como um argumento de valor de modelo.

Este erro está obsoleto no Visual Studio 2022 e versões posteriores.

Examples

O exemplo a seguir gera C2944:

// C2944.cpp
// compile with: /c
template<class T>
class TC { };

template <int TC<int> > struct X1 { };   // C2944

template <class T > struct X2 {};

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

// C2944b.cpp
// compile with: /clr /c
generic<class T>
ref class GC {};

template <int GC<int> > struct X2 { };   // C2944
template <class T> struct X3 {};   // OK