Error del compilador C2977
'identificador': demasiados argumentos de tipo
Una clase genérica o plantilla tiene demasiados argumentos reales. Compruebe la declaración genérica o de plantilla para encontrar el número correcto de parámetros.
El ejemplo siguiente genera la advertencia C2977:
// C2977.cpp
// compile with: /c
template<class T, int i>
class MyClass {};
template MyClass< int , 1, 1 >; // C2977
template MyClass< int , 1 >; // OK
También se puede producir el error C2977 al usar genéricos:
// C2977b.cpp
// compile with: /clr
// C2977 expected
generic <class T, class U>
void f(){}
generic <class T>
ref struct GC1 {};
int main() {
// Delete the following 2 lines to resolve.
GC1<int, char> ^ pgc1;
f<int,int,int>();
// OK
GC1<int> ^ pgc1;
f<int, int>();
}