V552. A bool type variable is incremented. Perhaps another variable should be incremented instead.
The analyzer detected a potentially dangerous construct in code where a variable of the bool type is being incremented.
Consider the following contrived example:
bool bValue = false; ... bValue++;
First, the C++ language's standard reads:
The use of an operand of type bool with the postfix ++ operator is deprecated.
It means that we should not use such a construct.
Second, it is better to assign the 'true' value explicitly to this variable. This code is clearer:
bValue = true;
Third, it might be that there is a misprint in the code and the programmer actually intended to increment a different variable. For example:
bool bValue = false; int iValue = 1; ... if (bValue) bValue++;
A wrong variable was used by accident here while it was meant to be this code:
bool bValue = false; int iValue = 1; ... if (bValue) iValue++;
This diagnostic is classified as:
You can look at examples of errors detected by the V552 diagnostic.