Sdílet prostřednictvím


Chyba kompilátoru C3163

'construct': atributy nekonzistentní s předchozí deklarací

Atributy, které se použijí na definici, jsou v konfliktu s atributy, které se použijí na deklaraci.

Jedním ze způsobů, jak vyřešit C3163, je eliminovat atributy u předávací deklarace. Všechny atributy u předávací deklarace by měly být menší než atributy v definici nebo ve většině případů by se měly rovnat.

Možná příčina chyby C3163 zahrnuje jazyk SAL (Source Code Annotation Language). Makra SAL se nerozbalují, pokud nekompilujete projekt pomocí příznaku /analyze . Program, který se zkompiluje čistě bez /analyze toho, může vyvolat C3163, pokud se pokusíte jej znovu zkompilovat s /analyze možností. Další informace o sal naleznete v tématu Poznámky SAL.

Příklad

Následující ukázka vygeneruje 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() {}

Viz také

Poznámky SAL