警告 C28300

<>parameter_name: 演算子<operator_nameの互換性のない型の式オペランド>

この警告は、SAL 注釈に、互換性のない型を含む式が含まれていることを示します。

union MyUnion
{
  int length;
  //...
};

// Oops, int and MyUnion are not compatible with the + operator.
void f(_In_reads_(10 + value) int *buffer, MyUnion value)
{
  for(int i = 0 ; i < (10 + value.length); i++)
  {
    //...
  }
}

前の例では、開発者は適切なメンバー変数にアクセスするのを忘れていました。 それ以外の場合は、明示的なキャストを使用してエラーを修正する必要があります。

void f(_In_reads_(10 + value.length) int *buffer, MyUnion value)
{
  for(int i = 0 ; i < (10 + value.length); i++)
  {
    //...
  }
}