Teilen über


Compilerfehler C3163

'construct': Attribute, die mit der vorherigen Deklaration inkonsistent sind

Bemerkungen

Die Attribute, die auf eine Definition angewendet werden, stehen im Konflikt mit den Attributen, die auf eine Deklaration angewendet werden.

Eine Möglichkeit zum Auflösen von C3163 besteht darin, Attribute für die Weiterleitungsdeklaration zu beseitigen. Alle Attribute einer Weiterleitungsdeklaration sollten kleiner als die Attribute in der Definition oder höchstens gleich ihnen sein.

Eine mögliche Ursache des C3163-Fehlers ist die Microsoft-Quellcodeanmerkungssprache (SAL). Die SAL-Makros werden nicht erweitert, es sei denn, Sie kompilieren Ihr Projekt mithilfe der /analyze Kennzeichnung. Ein Programm, das sauber kompiliert wird, ohne /analyze C3163 zu lösen, wenn Sie versuchen, es mit der /analyze Option neu zu kompilieren. Weitere Informationen zu SAL finden Sie unter SAL Annotations.

Beispiel

Im folgenden Beispiel wird C3163 generiert.

// 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() {}

Siehe auch

SAL-Anmerkungen