Boost logo

Boost :

From: Markus Schöpflin (markus.schoepflin_at_[hidden])
Date: 2005-12-20 04:56:20


Paul Mensonides wrote:

> What I said here isn't quite correct, so I'll elaborate. The block has to be
> parsed just enough to determine nested conditional compilation blocks. E.g.
>
> #if 0
> #if 0
> #endif
> #endif
>
> ....but it isn't supposed to parse anything else--including an operands to
> directives. So, the following should still work:
>
> #if 0
> #if // no expression!
> #endif
> #endif
>
> So, basically, the only parse is to tell if a name following '#' on a new line
> is one of the conditional compilation directives or not. Specifically, from
> 16.1/6, "...the group that it controls is skipped: directives are processed only
> through the name that determines the directive in order to keep track of the
> level of nested conditionals; the rest of the directives' preprocessing tokens
> are ignored, as are the other preprocessing tokens in the group."

Ok, thanks for elaborating. I think this gives me enough details to file a
bug report with the compiler vendor.

Markus


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk