>What are the debugging issues you mention? Note that this macro will >never fail: there is no pointer deferencing, no memory allocation, ...
Never is a bad word to use for anything more complicated than x=1+2. (Which will hopefully get constant folded and optimized away anyway.) It is impossible to single step (line by line.. statement by statement) through that macro in a debugger. That is a general class of things we want to avoid. Computers can do weird things sometimes, and if, for example, something is up with the stack, I'm going to want to look at it right before it gets assigned, no matter that it shouldn't have changed in the past 10 lines. -R