Merge -r 127928:132243 from trunk
[official-gcc.git] / libstdc++-v3 / doc / html / 17_intro / api.html
blob1d1e36d90d2e44d750ac06d19766d331685a8153
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html
3 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7 <head>
8 <meta name="AUTHOR" content="bkoz@gcc.gnu.org (Benjamin Kosnik)" />
9 <meta name="KEYWORDS" content="C++, libstdc++, API, evolution, deprecate" />
10 <meta name="DESCRIPTION" content="API evolution and deprecation history" />
11 <meta name="GENERATOR" content="emacs and ten fingers" />
12 <title>API Evolution and Deprecation History</title>
13 <link rel="StyleSheet" href="lib3styles.css" type="text/css" />
14 <link rel="Start" href="documentation.html" type="text/html"
15 title="GNU C++ Standard Library" />
16 <link rel="Copyright" href="17_intro/license.html" type="text/html" />
17 </head>
18 <body>
20 <h1 class="centered"><a name="top">API Evolution and Deprecation History</a></h1>
22 <p class="fineprint"><em>
23 The latest version of this document is always available at
24 <a href="http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/api.html">
25 http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/api.html</a>.
26 </em></p>
28 <p><em>
29 To the <a href="http://gcc.gnu.org/libstdc++/">libstdc++ homepage</a>.
30 </em></p>
32 <!-- ####################################################### -->
34 <hr />
35 <h3 class="left">
36 <a name="intro">API Evolution, Deprecation, and History of User Visible Changes</a>
37 </h3>
39 <p> A list of user-visible changes, by release version.
40 </p>
42 <h3 class="left">
43 <a name="3.0">3.0</a>
44 </h3>
46 <p>
47 Extensions moved to <code>include/ext</code>.
48 </p>
50 <p>
51 Include files from the SGI/HP sources that pre-date the ISO standard
52 are added. These files are placed into
53 the <code>include/backward</code> directory and a deprecated warning
54 is added that notifies on inclusion (<code>-Wno-deprecated</code>
55 deactivates the warning.)
56 </p>
58 <p>Deprecated include &lt;backward/strstream&gt; added.</p>
60 <p>Removal of include &lt;builtinbuf.h&gt;, &lt;indstream.h&gt;, &lt;parsestream.h&gt;, &lt;PlotFile.h&gt;, &lt;SFile.h&gt;, &lt;stdiostream.h&gt;, and &lt;stream.h&gt;.</p>
63 <h3 class="left">
64 <a name="3.1">3.1</a>
65 </h3>
67 <p>
68 Extensions from SGI/HP moved from <code>namespace std</code>
69 to <code>namespace __gnu_cxx</code>. As part of this, the following
70 new includes are
71 added: &lt;ext/algorithm&gt;, &lt;ext/functional&gt;, &lt;ext/iterator&gt;, &lt;ext/memory&gt;, and &lt;ext/numeric&gt;.
72 </p>
74 <p>
75 Extensions to <code>basic_filebuf</code> introduced: <code>__gnu_cxx::enc_filebuf</code>, and <code>__gnu_cxx::stdio_filebuf</code>.
76 </p>
78 <p>
79 Extensions to tree data structures added in &lt;ext/rb_tree&gt;.
80 </p>
82 <p>
83 Removal of &lt;ext/tree&gt;, moved to &lt;backward/tree.h&gt;.
84 </p>
87 <h3 class="left">
88 <a name="3.2">3.2</a>
89 </h3>
90 <p>Symbol versioning introduced for shared library.</p>
92 <p>Removal of include &lt;backward/strstream.h&gt;.</p>
94 <h3 class="left">
95 <a name="3.3">3.3</a>
96 </h3>
97 <p>Allocator changes. Change <code>__malloc_alloc</code> to <code>malloc_allocator</code> and <code>__new_alloc</code> to <code>new_allocator</code>. </p>
99 <p>Error handling in iostreams cleaned up, made consistent. </p>
102 <h3 class="left">
103 <a name="3.4">3.4</a>
104 </h3>
106 Large file support.
107 </p>
109 <p> Extensions for generic characters and <code>char_traits</code> added in &lt;ext/pod_char_traits.h&gt;.
110 </p>
113 Support for <code>wchar_t</code> specializations of <code>basic_filebuf</code> enhanced to support <code>UTF-8</code> and <code>Unicode</code>, depending on host. More hosts support basic <code>wchar_t</code> functionality.
114 </p>
117 Support for <code>char_traits</code> beyond builtin types.
118 </p>
121 Conformant <code>allocator</code> class and usage in containers. As
122 part of this, the following extensions are
123 added: &lt;ext/bitmap_allocator.h&gt;, &lt;ext/debug_allocator.h&gt;, &lt;ext/mt_allocator.h&gt;, &lt;ext/malloc_allocator.h&gt;,&lt;ext/new_allocator.h&gt;, &lt;ext/pool_allocator.h&gt;.
124 </p>
128 Debug mode first appears.
129 </p>
132 PCH support.
133 </p>
136 Macro guard for libstdc++ changed, from _GLIBCPP_ to _GLIBCXX_.
137 </p>
140 Extension &lt;ext/stdio_sync_filebuf.h&gt; added.
141 </p>
144 Extension &lt;ext/demangle.h&gt; added.
145 </p>
148 <h3 class="left">
149 <a name="4.0">4.0</a>
150 </h3>
152 TR1 features first appear.
153 </p>
156 Extension allocator &lt;ext/array_allocator.h&gt; added.
157 </p>
160 Extension <code>codecvt</code> specializations moved to &lt;ext/codecvt_specializations.h&gt;.
161 </p>
164 Removal of &lt;ext/demangle.h&gt;.
165 </p>
168 <h3 class="left">
169 <a name="4.1">4.1</a>
170 </h3>
173 Removal of &lt;cassert&gt; from all standard headers: now has to be explicitly included for <code>std::assert</code> calls.
174 </p>
176 <p> Extensions for policy-based data structures first added. New includes,
177 types, namespace <code>pb_assoc</code>.
178 </p>
182 <p> Extensions for typelists added in &lt;ext/typelist.h&gt;.
183 </p>
185 <p> Extension for policy-based <code>basic_string</code> first added: <code>__gnu_cxx::__versa_string</code> in &lt;ext/vstring.h&gt;.
186 </p>
188 <h3 class="left">
189 <a name="4.2">4.2</a>
190 </h3>
192 <p> Default visibility attributes applied to <code>namespace std</code>. Support for <code>-fvisibility</code>.
193 </p>
195 <p>TR1 &lt;random&gt;, &lt;complex&gt;, and C compatibility headers added.</p>
197 <p> Extensions for concurrent programming consolidated
198 into &lt;ext/concurrence.h&gt; and &lt;ext/atomicity.h&gt;,
199 including change of namespace to <code>__gnu_cxx</code> in some
200 cases. Added types
201 include <code>_Lock_policy</code>, <code>__concurrence_lock_error</code>, <code>__concurrence_unlock_error</code>, <code>__mutex</code>, <code>__scoped_lock</code>.</p>
203 <p> Extensions for type traits consolidated
204 into &lt;ext/type_traits.h&gt;. Additional traits are added
205 (<code>__conditional_type</code>, <code>__enable_if</code>, others.)
206 </p>
208 <p> Extensions for policy-based data structures revised. New includes,
209 types, namespace moved to <code>__pb_ds</code>.
210 </p>
212 <p> Extensions for debug mode modified: now nested in <code>namespace
213 std::__debug</code> and extensions in <code>namespace
214 __gnu_cxx::__debug</code>.</p>
216 <p> Extensions added: &lt;ext/typelist.h&gt;
217 and &lt;ext/throw_allocator.h&gt;.
218 </p>
220 <h3 class="left">
221 <a name="4.3">4.3</a>
222 </h3>
225 C++0X features first appear.
226 </p>
228 <p>TR1 &lt;regex&gt; and &lt;cmath&gt;'s mathematical special function added.</p>
231 Backward include edit.
232 </p>
233 <ul>
234 <li> Removed: &lt;algobase.h&gt; &lt;algo.h&gt; &lt;alloc.h&gt; &lt;bvector.h&gt; &lt;complex.h&gt;
235 defalloc.h&gt; &lt;deque.h&gt; &lt;fstream.h&gt; &lt;function.h&gt; &lt;hash_map.h&gt; &lt;hash_set.h&gt;
236 hashtable.h&gt; &lt;heap.h&gt; &lt;iomanip.h&gt; &lt;iostream.h&gt; &lt;istream.h&gt; &lt;iterator.h&gt;
237 list.h&gt; &lt;map.h&gt; &lt;multimap.h&gt; &lt;multiset.h&gt; &lt;new.h&gt; &lt;ostream.h&gt; &lt;pair.h&gt; &lt;queue.h&gt; &lt;rope.h&gt; &lt;set.h&gt; &lt;slist.h&gt; &lt;stack.h&gt; &lt;streambuf.h&gt; &lt;stream.h&gt; &lt;tempbuf.h&gt;
238 &lt;tree.h&gt; &lt;vector.h&gt;
239 </li>
240 <li> Added: &lt;hash_map&gt; and &lt;hash_set&gt;</li>
241 <li> Added in C++0x: &lt;auto_ptr.h&gt; and &lt;binders.h&gt;</li>
242 </ul>
245 Header dependency streamlining.
246 </p>
248 <ul>
249 <li>&lt;algorithm&gt; no longer includes &lt;climits&gt;, &lt;cstring&gt;, or &lt;iosfwd&gt; </li>
250 <li>&lt;bitset&gt; no longer includes &lt;istream&gt; or &lt;ostream&gt;, adds &lt;iosfwd&gt; </li>
251 <li>&lt;functional&gt; no longer includes &lt;cstddef&gt;</li>
252 <li>&lt;iomanip&gt; no longer includes &lt;istream&gt;, &lt;istream&gt;, or &lt;functional&gt;, adds &lt;ioswd&gt; </li>
253 <li>&lt;numeric&gt; no longer includes &lt;iterator&gt;</li>
254 <li>&lt;string&gt; no longer includes &lt;algorithm&gt; or &lt;memory&gt;</li>
256 <li>&lt;valarray&gt; no longer includes &lt;numeric&gt; or &lt;cstdlib&gt;</li>
257 <li>&lt;tr1/hashtable&gt; no longer includes &lt;memory&gt; or &lt;functional&gt;</li>
258 <li>&lt;tr1/memory&gt; no longer includes &lt;algorithm&gt;</li>
259 <li>&lt;tr1/random&gt; no longer includes &lt;algorithm&gt; or &lt;fstream&gt;</li>
260 </ul>
263 Debug mode for &lt;unordered_map&gt; and &lt;unordered_set&gt;.
264 </p>
267 Parallel mode first appears.
268 </p>
270 <p>Variadic template implementations of items in &lt;tuple&gt; and
271 &lt;functional&gt;.
272 </p>
274 <p>Default <code>what</code> implementations give more elaborate
275 exception strings for <code>bad_cast</code>,
276 <code>bad_typeid</code>, <code>bad_exception</code>, and
277 <code>bad_alloc</code>.
278 </p>
281 PCH binary files no longer installed. Instead, the source files are installed.
282 </p>
285 Namespace pb_ds moved to __gnu_pb_ds.
286 </p>
288 </body>
289 </html>