$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Daniel James (daniel_at_[hidden])
Date: 2004-08-16 17:03:42
Paul Mensonides wrote:
> Note, BTW, that Borland's non-integrated command line preprocessor (i.e. not the
> compiler itself in preprocess-only mode) is a pretty good preprocessor. It
> doesn't have the weird identifier-splicing bug that makes the straightforward
> version of IS_UNARY (etc.) not work. Last time I checked, it can even handle
> Chaos.
That caught me out once, I thought I had some macros working on Borland,
but it was only working on the separate preprocessor.
> Regarding the instability: the macro itself is stable, but the input is not
> which can foul up the internals. The library itself does a ton of extra
> scaffolding to force expansion order when it is important (for VC and MWCW < 9)
> it does this globally across the entire library. However, that scaffolding does
> not exist in user code (nor should it have to if at all possible), and IS_UNARY
> (etc.) cannot force an arbitrary amount of expansion to account for it. You'd
> be surprise how much stuff doesn't expand when it should on those preprocessors
> that happens to get picked up later.
Thanks for the explanation. It'll be a big help.
> (You might have guessed that I really
> really hate those preprocessors.)
I can understand, I've seen the workarounds. I'm really impressed by how
well the boost preprocessor library hides all of this.
Daniel