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


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

"функция-член": невозможно указать ограничения, они унаследованы из базового метода

При переопределении универсальной функции-члена нельзя указать предложения ограничений (при повторении ограничений подразумевается, что они не наследуются).

В этом случае наследуются предложения ограничений, содержащиеся в переопределяемой универсальной функции.

Дополнительные сведения см. в статье Constraints on Generic Type Parameters (C++/CLI) (Ограничения, применяемые к параметрам универсальных типов (C++/CLI)).

Пример

Следующий пример приводит к возникновению ошибки C3299.

// C3299.cpp
// compile with: /clr /c
public ref struct R {
   generic<class T>
   where T : R
   virtual void f();
};

public ref struct S : R {
   generic<class T>
   where T : R   // C3299
   virtual void f() override;
};