Boost logo

Boost :

Subject: Re: [boost] __COUNTER__ vs __LINE__
From: lcaminiti (lorcaminiti_at_[hidden])
Date: 2012-01-13 14:16:09


Andrey Semashev-2 wrote
>
> On Wednesday, January 11, 2012 10:28:25 lcaminiti wrote:
>> Hello all,
>>
>> Many of Boost macro APIs PP_CAT symbols with either __LINE__ or
>> __COUNTER__
>> to make them unique (MPL_STATIC_ASSERT, SCOPE_EXIT, etc). AFAIK, __LINE__
>> is
>> C++03 standard while __COUNTER__ is only a MSVC extension. I think using
>> __COUNTER__ instead of __LINE__ might allow to expand a macro multiple
>> times on the same line... but a part from that:
>>
>> What's the reason for using __COUNTER__ on MSVC instead of just using
>> __LINE__ for all compilers?
>
> MSVC has problems with expanding __LINE__ when precompiled headers are
> used.
> Basically, __COUNTER__ is the only practical option with this compiler
> when
> the macro is to be expanded in a header.
>

OK. Is there a Boost macro like this already?

#include <boost/config.hpp>

#ifdef BOOST_MSVC
# define BOOST_LINE_COUNTER __COUNTER__
#else
# define BOOST_LINE_COUNTER __LINE__
#endif

Thanks.
--Lorenzo

--
View this message in context: http://boost.2283326.n4.nabble.com/boost-COUNTER-vs-LINE-tp4286398p4293111.html
Sent from the Boost - Dev mailing list archive at Nabble.com.

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