You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

131 lines
5.9 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2018 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Funding Free Software", the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below). A copy of the license is included in the section entitled
"GNU Free Documentation License".
(a) The FSF's Front-Cover Text is:
A GNU Manual
(b) The FSF's Back-Cover Text is:
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development. -->
<!-- Created by GNU Texinfo 6.4, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Backwards Compatibility (Using the GNU Compiler Collection (GCC))</title>
<meta name="description" content="Backwards Compatibility (Using the GNU Compiler Collection (GCC))">
<meta name="keywords" content="Backwards Compatibility (Using the GNU Compiler Collection (GCC))">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="C_002b_002b-Extensions.html#C_002b_002b-Extensions" rel="up" title="C++ Extensions">
<link href="Objective_002dC.html#Objective_002dC" rel="next" title="Objective-C">
<link href="Deprecated-Features.html#Deprecated-Features" rel="prev" title="Deprecated Features">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<a name="Backwards-Compatibility"></a>
<div class="header">
<p>
Previous: <a href="Deprecated-Features.html#Deprecated-Features" accesskey="p" rel="prev">Deprecated Features</a>, Up: <a href="C_002b_002b-Extensions.html#C_002b_002b-Extensions" accesskey="u" rel="up">C++ Extensions</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Backwards-Compatibility-1"></a>
<h3 class="section">7.12 Backwards Compatibility</h3>
<a name="index-Backwards-Compatibility"></a>
<a name="index-ARM-_005bAnnotated-C_002b_002b-Reference-Manual_005d"></a>
<p>Now that there is a definitive ISO standard C++, G++ has a specification
to adhere to. The C++ language evolved over time, and features that
used to be acceptable in previous drafts of the standard, such as the ARM
[Annotated C++ Reference Manual], are no longer accepted. In order to allow
compilation of C++ written to such drafts, G++ contains some backwards
compatibilities. <em>All such backwards compatibility features are
liable to disappear in future versions of G++.</em> They should be considered
deprecated. See <a href="Deprecated-Features.html#Deprecated-Features">Deprecated Features</a>.
</p>
<dl compact="compact">
<dt><code>For scope</code></dt>
<dd><p>If a variable is declared at for scope, it used to remain in scope
until the end of the scope that contained the for statement (rather
than just within the for scope). The deprecated
<samp>-fno-for-scope</samp> option enables this non-standard behavior.
Without the option, G++ retains this, but issues a warning, if such a
variable is accessed outside the for scope.
</p>
<p>The behavior is deprecated, only available with <samp>-std=c++98</samp>
<samp>-std=gnu++98</samp> languages and you must use the
<samp>-fpermissive</samp> option to enable it. The behavior will be
removed.
</p>
</dd>
<dt><code>Friend Injection</code></dt>
<dd><p>The <samp>-ffriend-injection</samp> option makes injected friends visible
to regular name lookup, unlike standard C++. This option is
deprecated and will be removed.
</p>
</dd>
<dt><code>Implicit C language</code></dt>
<dd><p>Old C system header files did not contain an <code>extern &quot;C&quot; {&hellip;}</code>
scope to set the language. On such systems, all header files are
implicitly scoped inside a C language scope. Also, an empty prototype
<code>()</code> is treated as an unspecified number of arguments, rather
than no arguments, as C++ demands.
</p></dd>
</dl>
<hr>
<div class="header">
<p>
Previous: <a href="Deprecated-Features.html#Deprecated-Features" accesskey="p" rel="prev">Deprecated Features</a>, Up: <a href="C_002b_002b-Extensions.html#C_002b_002b-Extensions" accesskey="u" rel="up">C++ Extensions</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>