hc
2023-11-07 f45e756958099c35d6afb746df1d40a1c6302cfc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2016 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 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using the GNU Compiler Collection (GCC): Deprecated Features</title>
 
<meta name="description" content="Using the GNU Compiler Collection (GCC): Deprecated Features">
<meta name="keywords" content="Using the GNU Compiler Collection (GCC): Deprecated Features">
<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="Backwards-Compatibility.html#Backwards-Compatibility" rel="next" title="Backwards Compatibility">
<link href="Java-Exceptions.html#Java-Exceptions" rel="prev" title="Java Exceptions">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
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.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
 
 
</head>
 
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Deprecated-Features"></a>
<div class="header">
<p>
Next: <a href="Backwards-Compatibility.html#Backwards-Compatibility" accesskey="n" rel="next">Backwards Compatibility</a>, Previous: <a href="Java-Exceptions.html#Java-Exceptions" accesskey="p" rel="prev">Java Exceptions</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="Deprecated-Features-1"></a>
<h3 class="section">7.13 Deprecated Features</h3>
 
<p>In the past, the GNU C++ compiler was extended to experiment with new
features, at a time when the C++ language was still evolving.  Now that
the C++ standard is complete, some of those features are superseded by
superior alternatives.  Using the old features might cause a warning in
some cases that the feature will be dropped in the future.  In other
cases, the feature might be gone already.
</p>
<p>While the list below is not exhaustive, it documents some of the options
that are now deprecated:
</p>
<dl compact="compact">
<dt><code>-fexternal-templates</code></dt>
<dt><code>-falt-external-templates</code></dt>
<dd><p>These are two of the many ways for G++ to implement template
instantiation.  See <a href="Template-Instantiation.html#Template-Instantiation">Template Instantiation</a>.  The C++ standard clearly
defines how template definitions have to be organized across
implementation units.  G++ has an implicit instantiation mechanism that
should work just fine for standard-conforming code.
</p>
</dd>
<dt><code>-fstrict-prototype</code></dt>
<dt><code>-fno-strict-prototype</code></dt>
<dd><p>Previously it was possible to use an empty prototype parameter list to
indicate an unspecified number of parameters (like C), rather than no
parameters, as C++ demands.  This feature has been removed, except where
it is required for backwards compatibility.   See <a href="Backwards-Compatibility.html#Backwards-Compatibility">Backwards Compatibility</a>.
</p></dd>
</dl>
 
<p>G++ allows a virtual function returning &lsquo;<samp>void *</samp>&rsquo; to be overridden
by one returning a different pointer type.  This extension to the
covariant return type rules is now deprecated and will be removed from a
future version.
</p>
<p>The G++ minimum and maximum operators (&lsquo;<samp>&lt;?</samp>&rsquo; and &lsquo;<samp>&gt;?</samp>&rsquo;) and
their compound forms (&lsquo;<samp>&lt;?=</samp>&rsquo;) and &lsquo;<samp>&gt;?=</samp>&rsquo;) have been deprecated
and are now removed from G++.  Code using these operators should be
modified to use <code>std::min</code> and <code>std::max</code> instead.
</p>
<p>The named return value extension has been deprecated, and is now
removed from G++.
</p>
<p>The use of initializer lists with new expressions has been deprecated,
and is now removed from G++.
</p>
<p>Floating and complex non-type template parameters have been deprecated,
and are now removed from G++.
</p>
<p>The implicit typename extension has been deprecated and is now
removed from G++.
</p>
<p>The use of default arguments in function pointers, function typedefs
and other places where they are not permitted by the standard is
deprecated and will be removed from a future version of G++.
</p>
<p>G++ allows floating-point literals to appear in integral constant expressions,
e.g. &lsquo;<samp> enum E { e = int(2.2 * 3.7) } </samp>&rsquo;
This extension is deprecated and will be removed from a future version.
</p>
<p>G++ allows static data members of const floating-point type to be declared
with an initializer in a class definition. The standard only allows
initializers for static members of const integral types and const
enumeration types so this extension has been deprecated and will be removed
from a future version.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Backwards-Compatibility.html#Backwards-Compatibility" accesskey="n" rel="next">Backwards Compatibility</a>, Previous: <a href="Java-Exceptions.html#Java-Exceptions" accesskey="p" rel="prev">Java Exceptions</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>