Compartilhar via


Erro do compilador C3163

'construct': atributos inconsistentes com declaração anterior

Os atributos aplicados a uma definição entram em conflito com os atributos aplicados a uma declaração.

Uma maneira de resolver o C3163 é eliminar atributos na declaração de encaminhamento. Todos os atributos em uma declaração de encaminhamento devem ser menores do que os atributos na definição ou, no máximo, iguais a eles.

Uma possível causa do erro C3163 envolve a SAL (linguagem de anotação de código-fonte) da Microsoft. As macros SAL não se expandem, a menos que você compile seu projeto usando o sinalizador /analyze. Um programa que é compilado de forma limpa sem /analyze pode gerar C3163 se você tentar recompilá-lo com a opção /analyze. Para obter mais informações, consulte Anotações SAL.

Exemplo

A amostra a seguir gera 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() {}

Confira também

Anotações de SAL