]>
Commit | Line | Data |
---|---|---|
c63539ff ML |
1 | .. |
2 | Copyright 1988-2022 Free Software Foundation, Inc. | |
3 | This is part of the GCC manual. | |
4 | For copying conditions, see the copyright.rst file. | |
5 | ||
6 | .. index:: Backwards Compatibility, ARM [Annotated C++ Reference Manual] | |
7 | ||
8 | .. _backwards-compatibility: | |
9 | ||
10 | Backwards Compatibility | |
11 | *********************** | |
12 | ||
13 | Now that there is a definitive ISO standard C++, G++ has a specification | |
14 | to adhere to. The C++ language evolved over time, and features that | |
15 | used to be acceptable in previous drafts of the standard, such as the ARM | |
16 | [Annotated C++ Reference Manual], are no longer accepted. In order to allow | |
17 | compilation of C++ written to such drafts, G++ contains some backwards | |
18 | compatibilities. *All such backwards compatibility features are | |
19 | liable to disappear in future versions of G++.* They should be considered | |
20 | deprecated. See :ref:`deprecated-features`. | |
21 | ||
22 | ``Implicit C language`` | |
23 | Old C system header files did not contain an ``extern "C" {...}`` | |
24 | scope to set the language. On such systems, all system header files are | |
25 | implicitly scoped inside a C language scope. Such headers must | |
26 | correctly prototype function argument types, there is no leeway for | |
3ed1b4ce | 27 | ``()`` to indicate an unspecified set of arguments. |