Serious error-causing change in new CPP's -traditional behavior

Neil Booth NeilB@earthling.net
Fri May 12 19:32:00 GMT 2000


Zack Weinberg wrote:-

> > Not legal -- the token following # must be the name of a macro argument
> 
> Actually, this is legal; the ## converts the # into an ordinary
> token.  It does rely on the unspecified order of evaluation of # and
> ## operators, but we always do ## first.

No, I don't think it is.  You're right that order of evaluation isn't
specified, but you can't just "lose" the # like you suggest:-

6.10.3.2.1: Each # preprocessing token in the replacement list of a
function-like macro shall be followed by a parameter as the next
preprocessing token in the replacement list.

Neil.



More information about the Gcc-bugs mailing list