Udostępnij za pomocą


Błąd kompilatora C3163

"konstrukcja": atrybuty niespójne z poprzednią deklaracją

Uwagi

Atrybuty, które są stosowane do definicji, powodują konflikt z atrybutami, które są stosowane do deklaracji.

Jednym ze sposobów rozwiązania C3163 jest wyeliminowanie atrybutów w deklaracji przekazywania. Wszystkie atrybuty w deklaracji przesyłania dalej powinny być mniejsze niż atrybuty definicji lub, co najwyżej, równe.

Możliwą przyczyną błędu C3163 jest język adnotacji kodu źródłowego firmy Microsoft (SAL). Makra SAL nie rozszerzają się, chyba że skompilujesz projekt przy użyciu flagi /analyze . Program, który kompiluje się czysto bez /analyze , może zgłosić C3163, jeśli spróbujesz ponownie skompilować go z opcją /analyze . Aby uzyskać więcej informacji na temat sal, zobacz Adnotacje SAL.

Przykład

Poniższy przykład generuje kod 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() {}

Zobacz też

Adnotacje SAL