Partilhar via


Erro do compilador C3163

«construct»: atributos incompatíveis com a declaração anterior

Observações

O(s) atributo(s) aplicado(s) a uma definição entra em conflito com o(s) atributo(s) aplicado(s) a uma declaração.

Uma maneira de resolver C3163 é eliminar atributos na declaração antecipada. Quaisquer atributos em uma declaração futura 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 linguagem de anotação de código-fonte (SAL) da Microsoft. As macros SAL não se expandem, a menos que você compile seu projeto usando o /analyze sinalizador. Um programa que compila de forma limpa sem /analyze pode lançar C3163 se você tentar recompilá-lo com a /analyze opção. Para obter mais informações sobre SAL, consulte Anotações SAL.

Example

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

Consulte também

Anotações SAL