I was reading Effective C++: 55 ... and in Item no 2 .. there was this one line of code which I didn't understand
#define CALL_WITH_MAX(a, b) f((a) > (b) ? (a) : (b))
why do we need to parenthesize the arguments in the function called by define (here f() ) ?