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


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

"конструктор": атрибуты, несовместимые с предыдущим объявлением

Атрибуты, применяемые к определению, конфликтуют с атрибутами, применяемыми к объявлению.

Одним из способов разрешения C3163 является устранение атрибутов в объявлении пересылки. Любые атрибуты в объявлении пересылки должны быть меньше атрибутов определения или, в большинстве случаев, равными им.

Возможная причина ошибки C3163 включает язык заметок исходного кода Майкрософт (SAL). Макросы SAL не развертываются, если только вы не компилируете проект с помощью флага /analyze . Программа, скомпилированная без /analyze исключения C3163 при попытке перекомпилировать ее с /analyze помощью параметра. Дополнительные сведения о SAL см. в заметках SAL.

Пример

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

// C3163.cpp
// compile with: /clr /c
using namespace System;

[CLSCompliant(true)] void f();
[CLSCompliant(false)] void f() {}   // C3163
// try the following line instead
// [CLSCompliant(true)] void f() {}

См. также

Заметки SAL