Upozornění kompilátoru (úroveň 4) C4706
přiřazení v rámci podmíněného výrazu
Hodnota testu v podmíněného výrazu byla výsledkem přiřazení.
Přiřazení je hodnota (hodnota na levé straně přiřazení), který lze legálně v jiného výrazu, včetně testovací výraz.
Následující ukázka generuje upozornění C4706:
// C4706a.cpp
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ( a = b ) // C4706
{
}
}
Upozornění dojde i v případě, že Dvojité závorky testovací podmínka:
// C4706b.cpp
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ( ( a = b ) ) // C4706
{
}
}
Má-li otestovat vztah a provést přiřazení, použít == operátor.Například následující řádek testy zda a b jsou shodné:
// C4706c.cpp
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ( a == b )
{
}
}
Pokud máte v úmyslu provést test výsledek přiřazení hodnoty, test k zajištění, že přiřazení je nulová nebo not null.Například následující kód nebude generovat upozornění:
// C4706d.cpp
// compile with: /W4
int main()
{
int a = 0, b = 0;
if ( ( a = b ) != 0 )
{
}
}