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


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

"ограничение_1": невозможно использовать "ограничение_2" как ограничение, поскольку "ограничение_2" имеет ограничение ссылки, а "ограничение_1" имеет ограничение значения

Нельзя указывать взаимно исключающие характеристики для ограничения. Например, параметр универсального типа не может быть ограничен одновременно типом значения и ссылочным типом.

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

Пример

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

// C3298.cpp
// compile with: /clr /c
generic<class T, class U>
where T : ref class
where U : T, value class   // C3298
public ref struct R {};