On 6/12/2015 6:54 PM, Stephen Kelly wrote:
Edward Diener wrote:
On 6/12/2015 12:06 PM, John Maddock wrote: Some of it, although very clever, seems like educated "guesswork". Isn't it better if the compiler tells us what is omplemented ?
For come compiler versions/cxx features the answer is no: For some Clang releases which support SD-6 macros, they didn't implement the SD-6 macro for features which they documented as available.
As long as they don't give the wrong answer for the SD-6 they implemented it does not matter.
In some cases, they implemented the __has_feature macro for a feature but not the SD-6, and in other cases vice-versa.
My view is to use SD-6 and fall back to our current implementation when it is not available.
About what std lib features are you speaking ? Most of the things I see at https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendat... are predefined. Are you saying that because the compiler implementations of SD-6 most likely have to include standard library headers in order to implement SD-6 correctly that we should avoid using SD-6 ?
The reason for this
"this" meaning what ? That predefined macros are enforced rather than macros in standard library headers ?
is literally that the chair of SG-10 didn't want to require the stdlib implementor to have to open another file in their editor to add the macro there.
http://thread.gmane.org/gmane.comp.lang.c++.isocpp.features/17/focus=22
I get headaches thinking of all the reasons that that's absurd.