Erro do compilador C2902
'token': token inesperado após 'template', identificador esperado
O token após a palavra-chave template
não era um identificador.
Esse erro ficou obsoleto no Visual Studio 2022 e em versões posteriores.
O seguinte exemplo gera o erro C2902:
// C2902.cpp
// compile with: /c
namespace N {
template<class T> class X {};
class Y {};
}
void g() {
N::template + 1; // C2902
}
void f() {
N::template X<int> x1; // OK
}
O erro C2902 também pode ocorrer ao usar genéricos:
// C2902b.cpp
// compile with: /clr /c
namespace N {
generic<class T> ref class GC {};
}
void f() {
N::generic + 1; // C2902
N::generic GC<int>^ x;
}