Partager via


Erreur du compilateur C3163

'construct' : attributs incohérents avec la déclaration précédente

Les attributs appliqués à une définition sont en conflit avec les attributs appliqués à une déclaration.

Une façon de résoudre C3163 consiste à éliminer les attributs de la déclaration de transfert. Tous les attributs d’une déclaration de transfert doivent être inférieurs aux attributs de la définition ou, au plus, égaux à eux.

Une cause possible de l’erreur C3163 implique le langage d’annotation de code source Microsoft (SAL). Les macros SAL ne s’étendent pas, sauf si vous compilez votre projet à l’aide de l’indicateur /analyze . Programme qui se compile correctement sans /analyze lever la valeur C3163 si vous tentez de la recompiler avec l’option /analyze . Pour plus d’informations sur SAL, consultez annotations SAL.

Exemple

L’exemple suivant génère l’erreur 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() {}

Voir aussi

Annotations SAL