次の方法で共有


コンパイラの警告 (レベル 4) C4706

条件として使用される割り当て

条件式のテスト値は、代入の結果です。

代入には、テスト式などの別の式で合法的に使用できる値 (代入の左側の値) があります。

次の例では C4706 が生成されます。

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if (a = b) // C4706
   {
   }
}

(( ))で警告を抑制します。 例えば:

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if ((a = b)) // No warning
   {
   }
}

関係をテストし、割り当てを行わない場合は、== 演算子を使用します。 たとえば、次の例では、a と b が等しいかどうかをテストします。

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if (a == b)
   {
   }
}

テスト値を割り当ての結果にする場合は、割り当てが 0 以外または null 以外であることを確認するテストを行います。 たとえば、次のコードではこの警告は生成されません。

// compile with: /W4
int main()
{
   int a = 0, b = 0;
   if ((a = b) != 0)
   {
   }
}