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
>> 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!

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