Erro do compilador C2991
redefinição do parâmetro de tipo 'parameter'
Houve um conflito de tipo entre duas definições genéricas ou de modelo de parameter
. Ao definir vários parâmetros genéricos ou de modelo, você precisa usar tipos equivalentes.
O seguinte exemplo gera o erro C2991:
// C2991.cpp
// compile with: /c
template<class T, class T> struct TC {}; // C2991
// try the following line instead
// template<class T, class T2> struct TC {};
O erro C2991 também pode ocorrer ao usar genéricos:
// C2991b.cpp
// compile with: /clr /c
generic<class T,class T> ref struct GC {}; // C2991
// try the following line instead
// generic<class T,class T2> ref struct GC {};