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.
(Sent from my portable computation engine)