Next: Objective-C, Previous: C Extensions, Up: Top   [Contents][Index]

7 Extensions to the C++ Language

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++ (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 ‘->*’ or ‘.*’ expression.

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++.

Next: Objective-C, Previous: C Extensions, Up: Top   [Contents][Index]