Поделиться через


Ошибка компилятора C2991

переопределение параметра типа "параметр"

Произошел конфликт типов между двумя определениями универсальных параметров или параметров шаблона parameter. При определении нескольких универсальных параметров или параметров шаблона необходимо использовать эквивалентные типы.

Следующий пример приводит к возникновению ошибки 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 {};

Ошибка C2991 также может возникнуть при использовании универсальных шаблонов.

// 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 {};