4.2.10 __has_feature

The special operator __has_feature (operand) may be used in constant integer contexts and in preprocessor ‘#if’ and ‘#elif’ expressions to test whether the identifier given in operand is recognized as a feature supported by GCC given the current options and, in the case of standard language features, whether the feature is available in the chosen version of the language standard.

Note that __has_feature and __has_extension are not recommended for use in new code, and are only provided for compatibility with Clang. For details of which identifiers are accepted by these function-like macros, see the Clang documentation.