To me, "readable" code is sexy. I find the original code more readable than your proposal, since the original uses standard C++ syntax and the latter uses a macro which I'd have to go and look up.
If you want to be more explicit, you could say if (result == false)
(or better yet, if (false == result)
to prevent a possible assignment-as-comparison bug) but understanding the !
operator is a fairly reasonable expectation in my opinion.
That said, there is no reason to assign the return value to a temporary variable; you could just as easily say:
if (!LesserLevelFunc()) return false;
This is quite readable to me.
EDIT: You could also consider using exceptions instead of return values to communicate failure. If LesserLevelFunc()
threw an exception, you would not need to write any special code in highLevelFunc()
to check for success. The exception would propagate up through the caller to the nearest matching catch
block.