[C++11, C++14 PATCH 0/3] Support for SD-6: SG10 Feature Test Recommendations

Ed Smith-Rowland 3dw4rd@verizon.net
Sat May 31 03:41:00 GMT 2014


A group within the C++ standards committee was charged with the 
responibility of coming up with a way for users to test a C++ compiler 
and runtime for the availability of new features.  These features are 
intended to aid users in a time of intense C++ evolution.  These 
features are not really part of the C++ standard and probably can't be 
really.

The latest paper is:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4030.htm

Also, an earlier version is supplied as a standing document on the 
isocpp website:
https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations

The current patch implements __has_include and many of the language 
feature and library version macros outlined in these documents.

I builds and tests clean on x86_64-linux.

I anticipate that the next C++ meeting will see some additions (new 
library and language macros and a __has_cpp_attribute).  I will add 
these as a separate patch if needed.

I took the liberty of adding __has_include_next.  clang has both 
__has_include and __has_include_next.  Also, while the underlying cpp 
builtin that supports __has_include, __has_include__, is available to C 
and C++ in all language versions, the macro __has_include is only 
available for C++11 onwards.  One could however anticipate that this 
feature has utility for all C/C++ users.  What do you think?

Ed



More information about the Libstdc++ mailing list