Opened 4 years ago

Last modified 4 years ago

#11225 new Bugs

failed to compile with msvc8, variadics used wrong

Reported by: ingo.loehken@… Owned by: Joel de Guzman
Milestone: To Be Determined Component: fusion
Version: Boost 1.58.0 Severity: Regression
Keywords: BOOST_PP_IS_EMPTY, phoenix vector, variadics, vs2005, mscv8 Cc:

Description

Hi,

in fusion there are now switches to generate code either for compilers that support variadics macros or don't. For that the macro BOOST_PP_VARIADICS macro used, but there is a corner case: vs2005 has an incomplete implementation of variadic macros, that will fail with empty sequences, i.e. see BOOST_PP_IS_EMPTY that handles this is in a special way.

Therefore variadics should not be used for generation here.

All code in boost/fusion that uses only BOOST_PP_VARIADICS needs to be extended with && (!defined(_MSC_VER)
defined(_MSC_VER) && _MSC_VER > 1400) to avoid compiler failures.

Original error message comes from boost/phoenix, where compiler complains that there are not enough actual arguments for BOOST_PP_IS_EMPTY and other macros.

Greetz, ILo.

Change History (1)

comment:1 Changed 4 years ago by Kohei Takahashi <flast@…>

rels. to #11157

Note: See TracTickets for help on using tickets.