We've established that. VC++ v7.1 does it one way, VC++ v8 does it in
some other way. However, it does not mean that both are _allowed_. The
behaviour is very well defined by the Standard. See subclause 2.1,
"Phases of translation".
> but some compilers have been known to join the
Inserting a space is non-standard behaviour. If any particular compiler
does that, it's _non-compliant_.
That's called "a work around for this particular preprocessor bug".
Safety has nothing to do with it.