C6501
警告 C6501: 注釈の競合です: <名前> プロパティは、以前に指定されたプロパティと競合します
[!メモ]
この警告は、ソース・コード注釈言語 (SAL) の使用されていないバージョンを使用するコードにのみ発生します。ここでは、SAL の最新バージョンを使用するようにコードを移植することをお勧めします。詳細については、「SAL 注釈を使って C/C++ のコード障害を減らす方法」を参照してください。
この警告は、注釈内に競合するプロパティが存在することを示します。一般的に、パラメーターまたは戻り値に注釈を付けるために同じような目的のプロパティを複数使用している場合に発生します。警告を修正するには、目的に最も適したプロパティのみを選択する必要があります。
使用例
次に示すコードでは、有効なデータを読み取ることができるようにするため、ValidElementsConst と ValidBytesConst の両方を使用していることによって、この警告が生成されます。
// C
#include <CodeAnalysis\SourceAnnotations.h>
void fd([SA_Pre(ValidElementsConst =4, ValidBytesConst =4)] char pch[]);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f( [Pre(ValidElementsConst=4, ValidBytesConst=4 )] char pch[] );
この警告を修正するには、次のコードに示すように最適なプロパティのみを使用します。
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f( [SA_Pre(ValidElementsConst=4)] char pch[] );
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f( [Pre(ValidElementsConst=4)] char pch[] );