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
__GNUC__. You can also use
test specifically for GNU C++ (see Predefined Macros in The GNU C Preprocessor).
|• C++ Volatiles:||What constitutes an access to a volatile object.|
|• Restricted Pointers:||C99 restricted pointers and references.|
|• Vague Linkage:||Where G++ puts inlines, vtables and such.|
|• C++ Interface:||You can use a single C++ header file for both
declarations and definitions.
|• Template Instantiation:||Methods for ensuring that exactly one copy of
each needed template instantiation is emitted.
|• Bound member functions:||You can extract a function pointer to the
method denoted by a ‘
|• C++ Attributes:||Variable, function, and type attributes for C++ only.|
|• Function Multiversioning:||Declaring multiple function versions.|
|• Type Traits:||Compiler support for type traits.|
|• C++ Concepts:||Improved support for generic programming.|
|• Deprecated Features:||Things will disappear from G++.|
|• Backwards Compatibility:||Compatibilities with earlier definitions of C++.|