Subject: Re: [boost] nested BOOST_FOREACH and -Wshadow
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2009-02-07 09:33:20
Dustin Spicuzza wrote:
> Sebastian Redl wrote:
>> John Bytheway wrote:
>>> I'd suggest a simpler (from the user perspective) solution would be to
>>> have BOOST_FOREACH paste __LINE__ into its variable names. Then the
>>> problem would only occur if nested BOOST_FOREACHs were used on the same
>>> line. Asking users not to do that seems a lot more reasonable than
>>> asking them not to use -Wshadow or not to use nested BOOST_FOREACHs at all.
>> I'm pretty sure you'd need a special variant for MS compilers, since
>> their __LINE__ expansion is not cleanly pasteable. (You can use their
>> counting macro instead.)
> The line macro is a great idea, definitely far simpler than what I was
> suggesting. However, I'm not quite familiar with the MS counting macro...
It's __COUNTER__, unfolds into an integer. It gets incremented every
time it gets unfolded.