Function calls have the highest priority here, followed by logic NOT and logic OR.
!didIMakeAMistake() || CIsWrongHere();
!didIMakeAMistake() is evaluated first (or you can say didIMakeAMistake() is executed and evaluated first, then its result is inverted and checked), if it's true, evaluation is finished. If it's false, CIsWrongHere(); is evaluated.
It is indeed equivalent to
if (didIMakeAMistake()) /* !didIMakeAMistake() == false? */
CIsWrongHere();
Function calls have the highest priority here, followed by logic NOT and logic OR.
!didIMakeAMistake() is evaluated first (or you can say didIMakeAMistake() is executed and evaluated first, then its result is inverted and checked), if it's true, evaluation is finished. If it's false, CIsWrongHere(); is evaluated.It is indeed equivalent to
Without the invertion.