Boost logo

Boost :

Subject: Re: [boost] BOOST_NO_CXX11_ATOMIC?
From: Rob Stewart (robertstewart_at_[hidden])
Date: 2013-12-04 05:32:07


On Dec 3, 2013, at 1:21 PM, "John Maddock" <john_at_[hidden]> wrote:

>> Beman says that we often define a header macro which says that the header doesn't exist when the header exists, but is incomplete. This is correct.
>>
>> You then - apparently - suggested that we do that (pretend that the header doesn't exist), but in addition, supply other macros that signify that the header exists and provides some feature. I disagree that we should do that. (I say apparently because I wasn't sure that you did, hence my "if" qualifier above.)
>>
>> I think that in such a situation we should provide the feature macros, without a header macro. Any positive claim that a feature X exists and works implies the existence of the header. The header macro is - in this case - redundant.

That's what I was thinking, and I still think it's a good idea. It allows for either check, depending upon how one chooses to structure one's code. The header macro is general. The feature macros are stop-gaps. However, the latter are sufficient for the current need.

> Right, that's basically what we've always done:
>
> BOOST_NO_HEADER : when not defined, header exists and mostly (usefully) works.
> BOOST_NO_HEADER_FEATURE : when not defined then some "advanced" feature not covered by the above also works.
>
> Of course deciding what you class as advanced vs usefully works is always troublesome.

We're in that gray area between in this case.

___
Rob

(Sent from my portable computation engine)


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