|
Boost : |
From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2002-10-09 01:26:13
Vesa Karvonen wrote:
> [...]
> >preprocessing concatenation operation results in two valid
> preprocessing
> >tokens.
> ^^^
>
> ^^^^^^
> [...]
> >BOOST_PP_CAT(other.d_,PPV_NAME(I))
> ^
According to 16.3.3 [cpp.concat] para 3 it's perfectly valid (my emphasis):
"For both object-like and function-like macro invocations, before the
replacement list is reexamined for more macro names to replace, each
instance of a ## preprocessing token in the replacement list (not from an
argument) is deleted and *the preceding preprocessing token* is concatenated
with the following preprocessing token. If the result is not a valid
preprocessing token, the behavior is undefined. [...]"
Something like BOOST_PP_CAT(other.,PPV_NAME(I)) would be ill-formed, of
course.
Aleksey
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk