Warnung C28300
<>parameter_name: Ausdrucksopernden von inkompatiblen Typen für operator <operator_name>
Diese Warnung löst eine SAL-Anmerkung aus, die einen Ausdruck enthält, der inkompatible Typen enthält.
Beispiel
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++)
{
//...
}
}
Im vorherigen Beispiel hat der Entwickler vergessen, auf die entsprechende Membervariable zuzugreifen. In anderen Fällen müssen Sie den Fehler möglicherweise mit einer expliziten Umwandlung beheben.
void f(_In_reads_(10 + value.length) int *buffer, MyUnion value)
{
for(int i = 0 ; i < (10 + value.length); i++)
{
//...
}
}