Rob Stewart wrote:
On Dec 1, 2013, at 8:06 AM, "Peter Dimov"
wrote: Rob Stewart wrote:
Add feature macros and test for them. The macros can be defined when the header is fully supported or for particular compilers.
If you're agreeing with Beman that BOOST_NO_CXX11_HDR_ATOMIC should not be defined when <atomic> is not 100% conforming, then I disagree.
I replied, in another message, that Peter and Beman made opposite statements. Peter then claimed, in reply to me, that they did not disagree. I can't read the quote above any other way, so I'm confused.
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.