V699. Consider inspecting the 'foo = bar = baz ? .... : ....' expression. It is possible that 'foo = bar == baz ? .... : ....' should be used here instead.

The analyzer has detected an expression of the 'foo = bar = baz ? xyz : zzy' pattern. It is very likely to be an error: the programmer actually meant it to be 'foo = bar == baz ? xyz : zzy' but made a mistake causing the code to do assignment instead of comparison.

For example, take a look at the following incorrect code fragment:

int newID = currentID = focusedID ? focusedID : defaultID;

The programmer made a mistake writing an assignment operator instead of comparison operator. The fixed code should look like this:

int newID = currentID == focusedID ? focusedID : defaultID;

Note that the code below won't trigger the warning because the expression before the ternary operator is obviously of the bool type, which makes the analyzer assume it was written so on purpose.

result = tmpResult = someVariable == someOtherVariable? 1 : 0;

This fragment is quite clear. It is equivalent to the following lengthier one:

if (someVariable == someOtherVariable)
  tmpResult = 1;
else
  tmpResult = 0;
result = tmpResult;

This diagnostic is classified as:


Bugs Found

Checked Projects
411
Collected Errors
14 123
This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site. Learn More →
Accept