Boost logo

Boost :

Subject: Re: [boost] Boost 1.49 BOOST_PP_ITERATION_FLAGS(): causes build failures; would like a boost maintainer comment
From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2012-03-13 10:56:24

On Tue, 13 Mar 2012 08:26:06 -0500, Steve M. Robbins wrote:

>> I suppose that I *could* define all of these (it isn't just
>> BOOST_PP_ITERATION_FLAGS) to have values in the non-iterating case such
>> as:
>> #define BOOST_PP_ITERATION_FLAGS_0() 0 // etc.
> If I were to pursue this option, which other macros would need to be
> defined?

This isn't a good option. Essentially, GCC makes the code pattern...

#if !defined(MACRO)
    // A
#elif MACRO()
    // B

...untenable (or at least dependent on the contents of A).

This is not a problem with the definitions in the pp-lib. This is a
general issue with either GCC or the C/C++ languages themselves (if GCC is
actually correctly implementing the *intent* of the standards). The fix
and/or workaround is to change the usage pattern to the (more verbose):

#if !defined(MACRO)
    // A
    #if MACRO()
        // B

Paul Mensonides

Boost list run by bdawes at, gregod at, cpdaniel at, john at