Boost logo

Boost :

Subject: Re: [boost] [contract] ready to release
From: Lorenzo Caminiti (lorcaminiti_at_[hidden])
Date: 2018-01-10 22:41:41


Hello Steven!

On Wed, Jan 10, 2018 at 12:03 PM, Steven Watanabe via Boost
<boost_at_[hidden]> wrote:
> On 01/10/2018 12:45 PM, Lorenzo Caminiti via Boost wrote:
>>
>> I turns out the Boost inspect program reports the following:
>>
>> boost/contract/check.hpp:
>> (line 102) Apple macro clash: check
>> boost/contract/detail/type_traits/mirror.hpp:
>> (line 29) Apple macro clash: check
>> http://boost.cowic.de/rc/docs-inspect-develop.html#contract
>>
>> Are these a real issues? Boost.Contract uses 'check' as:
>>
>> boost::contract::check c = boost::contract::function().precondition(...);
>>
>> I could of course renamed that to 'check_' but it looks ugly...
>>
>
> check is a function-like macro, so it won't affect
> that particular usage.

True and in user code programmers can always use the
`boost::contract::check c = ...` syntax so this is not an issue.

> Expansion in the class
> definition can be blocked with BOOST_PREVENT_MACRO_SUBSTITUTION

Yes, this worked great and fixed my original issue.

> Also, I noticed one issue with your build/Jamfile.
> You should just link to /boost//system regardless of
> whether whether you're building a static or shared
> library. Putting /boost//system in the usage requirements
> does not guarantee that the libraries will be passed
> to the linker in the correct order. (In this case
> it works because "contract" is lexicographically before
> "system", but you really shouldn't rely on that behavior.)

I see, I'm fixing this.

Thank you!
--Lorenzo


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