On 3/9/2015 5:09 PM, Andrey Semashev wrote:
On Mon, Mar 9, 2015 at 11:58 PM, Edward Diener
wrote: On 3/9/2015 4:18 PM, Peter Dimov wrote:
b2 --without-test toolset=msvc-8.0 starts building, so the context/coroutine problem seems fixed.
It builds mostly everything except Boost.Log gives a few thousand warnings of the form
compile-c-c++ bin.v2\libs\log\build\msvc-8.0\debug\address-model-32\architecture
-x86\build-no\link-static\log-api-winnt\threading-multi\matches_relation_factory
.obj matches_relation_factory.cpp .\boost/phoenix/support/preprocessed/vector_10.hpp(47) : warning C4003: not enou gh actual parameters for macro 'BOOST_PP_IS_EMPTY' .\boost/phoenix/support/preprocessed/vector_10.hpp(47) : warning C4003: not enou gh actual parameters for macro 'BOOST_PP_IS_BEGIN_PARENS' .\boost/phoenix/support/preprocessed/vector_10.hpp(47) : warning C4003: not enou gh actual parameters for macro 'BOOST_PP_DETAIL_IS_EMPTY_PROCESS' .\boost/phoenix/support/preprocessed/vector_10.hpp(78) : warning C4003: not enou gh actual parameters for macro 'BOOST_PP_IS_EMPTY' .\boost/phoenix/support/preprocessed/vector_10.hpp(78) : warning C4003: not enou gh actual parameters for macro 'BOOST_PP_IS_BEGIN_PARENS' .\boost/phoenix/support/preprocessed/vector_10.hpp(78) : warning C4003: not enou gh actual parameters for macro 'BOOST_PP_DETAIL_IS_EMPTY_PROCESS'
VC++ 8.0 ( VS2005 ) is noticeable, even among the non-standard VC++ preprocessors, for being poorer than even VC++ 9, VC++ 10, VC++11, and VC++12. So the warnings are to be expected.
There weren't any warnings before. Is this a result of a change in Boost.PP?
Yes, but they were already in 1.57. The changes added some new (BOOST_PP_IS_BEGIN_PARENS) and better functionality (the internal BOOST_PP_IS_EMPTY) to Boost PP, as well as fixing some corner cases with VC++ I discovered when testing VMD. Turning off C4003 globally for VC++ is the only solution to the VC++ warnings I could ever discover. I attempted to turn off the warnings in the macros where they occur, but VC++ just ignores that. Evidently the warnings can only be turned off globally or possibly at the very top-level macro which eventually causes them.