Why is this an issue?
The use of operators pairs (=+
) where the reversed, single operator was meant (+=
) will compile and run, but not produce
the expected results.
This rule raises an issue when =+
, =-
, =!
, =&
, =*
, +=+
, and
-=-
are used without any space between the two operators and when there is at least one whitespace after.
Noncompliant code example
int target = -5;
int num = 3;
target =- num; // Noncompliant; target = -3. Is that really what's meant?
target =+ num; // Noncompliant; target = 3
Compliant solution
int target = -5;
int num = 3;
target = -num; // Compliant; intent to assign inverse value of num is clear
target += num;