编译器错误 C3163

“construct”:属性与以前的声明不一致

应用于定义的属性与应用于声明的属性发生冲突。

解决 C3163 的一种方法是消除前向声明的属性。 前向声明的任何属性都应小于定义的属性,或者至多等于这些属性。

C3163 错误的一个可能原因涉及 Microsoft 源代码注释语言 (SAL)。 除非使用 /analyze 标志编译项目,否则 SAL 宏不会展开。 如果尝试使用 /analyze 选项重新编译不使用 /analyze 来进行干净编译的程序,该程序可能会引发 C3163。 有关 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 注释