Subject: Re: [boost] [contract] ready to release
From: Lorenzo Caminiti (lorcaminiti_at_[hidden])
Date: 2018-01-10 22:41:41
On Wed, Jan 10, 2018 at 12:03 PM, Steven Watanabe via Boost
> On 01/10/2018 12:45 PM, Lorenzo Caminiti via Boost wrote:
>> I turns out the Boost inspect program reports the following:
>> (line 102) Apple macro clash: check
>> (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.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk