Kompilatorfel C3163

"construct": attribut som är inkonsekventa med tidigare deklaration

Anmärkningar

De attribut som tillämpas på en definition står i konflikt med de attribut som tillämpas på en deklaration.

Ett sätt att lösa C3163 är att eliminera attribut i framåtdeklarationen. Alla attribut i en framåtdeklaration bör vara mindre än attributen i definitionen eller högst lika med dem.

En möjlig orsak till C3163-felet omfattar Microsofts källkodsanteckningsspråk (SAL). SAL-makrona expanderas inte om du inte kompilerar projektet med hjälp /analyze av flaggan. Ett program som kompileras rent utan /analyze kan utlösa C3163 om du försöker kompilera om det med /analyze alternativet . Mer information om SAL finns i SAL-anteckningar.

Example

I följande exempel genereras 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() {}

Se även

SAL-anteckningar