The GNU compiler provides these extensions to the C++ language (and you can also use most of the C language extensions in your C++ programs). If you want to write code that checks whether these features are available, you can test for the GNU compiler the same way as for C programs: check for a predefined macro __GNUC__. You can also use __GNUG__ to test specifically for GNU C++ (Common Predefined MacrosPredefined MacroscppThe GNU C Preprocessor).
:: _c++-volatiles:
:: _restricted-pointers:
:: _vague-linkage:
:: _c++-interface:
:: _template-instantiation:
:: _bound-member-functions:
:: _c++-attributes:
:: _function-multiversioning:
:: _namespace-association:
:: _type-traits:
:: _java-exceptions:
:: _deprecated-features:
:: _backwards-compatibility: