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]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-9.3.0/gcc/C_002b_002b-Extensions.html