Boost logo

Boost :

Subject: Re: [boost] Conflicts when building libraries at root
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-03-09 18:20:03


On 3/9/2015 5:09 PM, Andrey Semashev wrote:
> On Mon, Mar 9, 2015 at 11:58 PM, Edward Diener <eldiener_at_[hidden]> 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.


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