1 <?xml version=
"1.0" encoding=
"ISO-8859-1"?>
3 PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
4 "DTD/xhtml1-transitional.dtd">
5 <html xmlns=
"http://www.w3.org/1999/xhtml" xml:
lang=
"en" lang=
"en">
9 <meta http-equiv=
"Content-Type" content=
"text/html; charset=iso-8859-1" />
10 <link rev=
"made" href=
"mailto:gcc@gcc.gnu.org" />
11 <link rel=
"shortcut icon" href=
"http://gcc.gnu.org/favicon.ico" />
14 Status of C++
0x features in GCC
15 - GNU Project - Free Software Foundation (FSF)
23 Status of C++
0x features in GCC
27 This table is based on the table of contents of ISO/IEC
28 Doc No: N2461=
07-
0331 Date:
2007-
10-
22
29 Working Draft, Standard for Programming Language C++
33 In this implementation
<code>-std=gnu++
0x
</code> or
34 <code>-std=c++
0x
</code> flags must be used to enable language and
35 library features. The pre-defined symbol
36 <code>__GXX_EXPERIMENTAL_CXX0X__
</code> is used to check for the
37 presence of the required flag.
41 This page describes the C++
0x support in mainline GCC SVN, not in any
48 <td><span style=
"font-weight: bold;">Section
</span></td>
49 <td><span style=
"font-weight: bold;">Description
</span></td>
50 <td><span style=
"font-weight: bold;">Done
</span></td>
51 <td><span style=
"font-weight: bold;">Broken
</span></td>
52 <td><span style=
"font-weight: bold;">Missing
</span></td>
53 <td><span style=
"font-weight: bold;">Comments
</span></td>
59 <td colspan=
"5"><b>General Utilities
</b></td>
63 <td>Utility Components
</td>
79 <td>forward/move helpers
</td>
96 <td>Header
<code><tuple
></code> synopsis
</td>
104 <td>Class template
<code>tuple
</code></td>
112 <td>Construction
</td>
120 <td>Tuple creation functions
</td>
128 <td>Tuple helper classes
</td>
136 <td>Element access
</td>
144 <td>Relational operators
</td>
153 <td colspan=
"5">Metaprogramming and type traits
</td>
157 <td>Requirements
</td>
165 <td>Header
<code><type_traits
></code> synopsis
</td>
173 <td>Helper classes
</td>
181 <td>General Requirements
</td>
189 <td>Unary Type Traits
</td>
197 <td>Primary Type Categories
</td>
205 <td>Composite type traits
</td>
213 <td>Type properties
</td>
221 <td>Relationships between types
</td>
229 <td>Transformations between types
</td>
237 <td>Const-volatile modifications
</td>
245 <td>Reference modifications
</td>
253 <td>Array modifications
</td>
261 <td>Pointer modifications
</td>
269 <td>Other transformations
</td>
277 <td>Implementation requirements
</td>
285 <td>Function Objects
</td>
293 <td>Additions to header
<code><functional
></code> synopsis
</td>
309 <td>Requirements
</td>
325 <td>Function return types
</td>
333 <td>Class template
<code>reference_wrapper
</code></td>
341 <td><code>reference_wrapper
</code> construct/copy/destroy
</td>
349 <td><code>reference_wrapper
</code> assignment
</td>
357 <td><code>reference_wrapper
</code> access
</td>
365 <td><code>reference_wrapper
</code> invocation
</td>
373 <td><code>reference_wrapper
</code> helper functions
</td>
381 <td>Function template
<code>mem_fn
</code></td>
389 <td>Template function bind
</td>
398 <td>Function object binders
</td>
406 <td>Class template
<code>is_bind_expression
</code></td>
414 <td>Class template
<code>is_placeholder
</code></td>
422 <td>Function template
<code>bind
</code></td>
430 <td>Placeholders
</td>
438 <td>Polymorphic function wrappers
</td>
446 <td>Class
<code>bad_function_call
<code></code></code></td>
454 <td><code>bad_function_call
</code> constructor
</td>
462 <td>Class template
<code>function
</code></td>
470 <td><code>function
</code> construct/copy/destroy
</td>
478 <td><code>function
</code> modifiers
</td>
486 <td><code>function
</code> capacity
</td>
494 <td><code>function
</code> invocation
</td>
502 <td><code>function
</code> target access
</td>
510 <td>null pointer comparison operators
</td>
518 <td>specialized algorithms
</td>
526 <td>Class template
<code>hash
</code></td>
534 <td>Additions to header
<code><memory
></code> synopsis
</td>
538 <td>missing
<code>unique_ptr
</code></td>
542 <td>Class template
<code>unique_ptr
</code></td>
550 <td>Smart pointers
</td>
558 <td>Class
<code>bad_weak_ptr
</code></td>
566 <td>Class template
<code>shared_ptr
</code></td>
570 <td><a href=
"#1">1</a></td>
574 <td><code>shared_ptr
</code> constructors
</td>
582 <td><code>shared_ptr
</code> destructor
</td>
590 <td><code>shared_ptr
</code> assignment
</td>
598 <td><code>shared_ptr
</code> modifiers
</td>
606 <td><code>shared_ptr
</code> observers
</td>
614 <td><code>shared_ptr
</code> creation
</td>
619 <a href=
"http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm">N2351
</a>
624 <td><code>shared_ptr
</code> comparison
</td>
632 <td><code>shared_ptr
</code> I/O
</td>
640 <td><code>shared_ptr
</code> specialized algorithms
</td>
648 <td><code>shared_ptr
</code> casts
</td>
656 <td><code>get_deleter
</code></td>
664 <td>Class template
<code>weak_ptr
</code></td>
672 <td><code>weak_ptr
</code> constructors
</td>
680 <td><code>weak_ptr
</code> destructor
</td>
688 <td><code>weak_ptr
</code> assignment
</td>
696 <td><code>weak_ptr
</code> modifiers
</td>
704 <td><code>weak_ptr
</code> observers
</td>
712 <td><code>weak_ptr
</code> comparison
</td>
720 <td><code>weak_ptr
</code> specialized algorithms
</td>
728 <td>Class template
<code>enable_shared_from_this
</code></td>
739 <td colspan=
"5"><b>Containers
</b></td>
743 <td>Header
<code><array
></code> synopsis
</td>
751 <td>Class template array
</td>
759 <td><code>array
</code> constructors, copy, and assignment
</td>
767 <td><code>array
</code> specialized algorithms
</td>
775 <td><code>array
</code>size
</td>
783 <td><code>array
</code>data
</td>
791 <td>Zero sized
<code>array
</code>s
</td>
799 <td>Tuple interface to class template
<code>array
</code></td>
808 <td>Unordered associative containers
</td>
816 <td>Class template
<code>unordered_map
</code></td>
824 <td><code>unordered_map
</code> constructors
</td>
832 <td><code>unordered_map
</code> element access
</td>
840 <td><code>unordered_map
</code> swap
</td>
848 <td>Class template
<code>unordered_multimap
</code></td>
856 <td><code>unordered_multimap
</code> constructors
</td>
864 <td><code>unordered_multimap
</code> swap
</td>
872 <td>Class template
<code>unordered_set
</code></td>
880 <td><code>unordered_set
</code> constructors
</td>
888 <td><code>unordered_set
</code> swap
</td>
896 <td>Class template
<code>unordered_multiset
<code></code></code></td>
904 <td><code>unordered_multiset
</code> constructors
</td>
912 <td><code>unordered_multiset
</code> swap
</td>
921 <td colspan=
"5"><b>Numerics
</b></td>
925 <td>Random number generation
</td>
933 <td>Requirements
</td>
941 <td>Header
<code><random
></code> synopsis
</td>
949 <td>Random number engine class templates
</td>
957 <td>Class template
<code>linear_congruential_engine
</code></td>
965 <td>Class template
<code>mersenne_twister_engine
</code></td>
973 <td>Class template
<code>subtract_with_carry_engine
</code></td>
981 <td>Random number engine adaptor class templates
</td>
990 <td>Class template
<code>discard_block_engine
</code></td>
998 <td>Class template
<code>independent_bits_engine
</code></td>
1006 <td>Class template
<code>shuffle_order_engine
</code></td>
1014 <td>Class template
<code>xor_combine_engine
</code></td>
1018 <td>operator()() per N2079
</td>
1022 <td>Engines and engine adaptors with predefined parameters
</td>
1030 <td>Class
<code>random_device
</code></td>
1046 <td>Class
<code>seed_seq
</code></td>
1054 <td>Function template
<code>generate_cannonical
</code></td>
1062 <td>Random number generation class templates
</td>
1070 <td>Uniform distributions
</td>
1078 <td>Class template
<code>uniform_int_distribution
</code></td>
1086 <td>Class template
<code>uniform_real_distribution
</code></td>
1094 <td>Bernoulli distributions
</td>
1103 <td>Class
<code>bernoulli_distribution
</code></td>
1111 <td>Class template
<code>binomial_distribution
</code></td>
1119 <td>Class template
<code>geometric_distribution
</code></td>
1127 <td>Class template
<code>negative_binomial_distribution
</code></td>
1135 <td>Poisson distributions
</td>
1143 <td>Class template
<code>poisson_distribution
</code></td>
1151 <td>Class template
<code>exponential_distribution
</code></td>
1159 <td>Class template
<code>gamma_distribution
</code></td>
1167 <td>Class template
<code>weibull_distribution
</code></td>
1175 <td>Class template
<code>extreme_value_distribution
</code></td>
1183 <td>Normal distributions
</td>
1191 <td>Class template
<code>normal_distribution
</code></td>
1199 <td>Class template
<code>lognormal_distribution
</code></td>
1207 <td>Class template
<code>chi_squared_distribution
</code></td>
1215 <td>Class template
<code>cauchy_distribution
</code></td>
1223 <td>Class template
<code>fisher_f_distribution
</code></td>
1231 <td>Class template
<code>student_t_distribution
</code></td>
1239 <td>Sampling distributions
</td>
1247 <td>Class template
<code>discrete_distribution
</code></td>
1255 <td>Class template
<code>piecewise_constant_distribution
</code></td>
1263 <td>Class template
<code>general_pdf_distribution
</code></td>
1272 <td colspan=
"5"><b>Regular expressions
</b></td>
1276 <td>Definitions
</td>
1284 <td>Requirements
</td>
1292 <td>Regular expressions summary
</td>
1300 <td>Header
<code><regex
></code> synopsis
</td>
1308 <td>Namespace
<code>tr1::regex_constants
</code></td>
1316 <td>Bitmask Type
<code>syntax_option_type
</code></td>
1324 <td>Bitmask Type
<code>regex_constants::match_flag_type
</code></td>
1332 <td>Implementation defined
<code>error_type
</code></td>
1340 <td>Class
<code>regex_error
</code></td>
1348 <td>Class template
<code>regex_traits
</code></td>
1356 <td>Class template
<code>basic_regex
</code></td>
1364 <td><code>basic_regex
</code> constants
</td>
1372 <td><code>basic_regex
</code> constructors
</td>
1380 <td><code>basic_regex
</code> assign
</td>
1388 <td><code>basic_regex
</code> constant operations
</td>
1396 <td><code>basic_regex
</code> locale
</td>
1404 <td><code>basic_regex
</code> swap
</td>
1412 <td><code>basic_regex
</code> non-member functions
</td>
1420 <td><code>basic_regex
</code> non-member swap
</td>
1428 <td>Class template
<code>sub_match
</code></td>
1436 <td><code>sub_match
</code> members
</td>
1444 <td><code>sub_match
</code> non-member operators
</td>
1452 <td>Class template
<code>match_results
</code></td>
1460 <td><code>match_results
</code> constructors
</td>
1468 <td><code>match_results
</code> size
</td>
1476 <td><code>match_results
</code> element access
</td>
1484 <td><code>match_results
</code> formatting
</td>
1492 <td><code>match_results
</code> allocator
</td>
1500 <td><code>match_results
</code> swap
</td>
1508 <td>Regular expression algorithms
</td>
1524 <td><code>regex_match
</code></td>
1532 <td><code>regex_search
</code></td>
1540 <td><code>regex_replace
</code></td>
1548 <td>Regular expression Iterators
</td>
1556 <td>Class template
<code>regex_iterator
</code></td>
1564 <td><code>regex_iterator
</code> constructors
</td>
1572 <td><code>regex_iterator
</code> comparisons
</td>
1580 <td><code>regex_iterator
</code> dereference
</td>
1588 <td><code>regex_iterator
</code> increment
</td>
1596 <td>Class template
<code>regex_token_iterator
</code></td>
1604 <td><code>regex_token_iterator
</code> constructors
</td>
1612 <td><code>regex_token_iterator
</code> comparisons
</td>
1620 <td><code>regex_token_iterator
</code> dereference
</td>
1628 <td><code>regex_token_iterator
</code> increment
</td>
1636 <td>Modified ECMAScript regular expression grammar
</td>
1644 <td colspan=
"5"><b>C compatibility
</b></td>
1648 <td>Additions to header
<code><complex
></code></td>
1664 <td>Function
<code>acos
</code></td>
1672 <td>Function
<code>asin
</code></td>
1680 <td>Function
<code>atan
</code></td>
1688 <td>Function
<code>acosh
</code></td>
1696 <td>Function
<code>asinh
</code></td>
1704 <td>Function
<code>atanh
</code></td>
1712 <td>Function
<code>fabs
</code></td>
1720 <td>Additional Overloads
</td>
1728 <td>Header
<code><ccomplex
></code></td>
1736 <td>Header
<code><complex.h
></code></td>
1744 <td>Additions to header
<code><cctype
></code></td>
1760 <td>Function
<code>isblank
</code></td>
1768 <td>Additions to header
<code><ctype.h
></code></td>
1776 <td>Header
<code><cfenv
></code></td>
1792 <td>Definitions
</td>
1800 <td>Header
<code><fenv.h
></code></td>
1808 <td>Additions to header
<code><cfloat
></code></td>
1816 <td>Additions to header
<code><float.h
></code></td>
1824 <td>Additions to header
<code><ios
></code></td>
1840 <td>Function
<code>hexfloat
</code></td>
1848 <td>Header
<code><cinttypes
></code></td>
1864 <td>Definitions
</td>
1872 <td>Header
<code><inttypes.h
></code></td>
1880 <td>Additions to header
<code><climits
></code></td>
1888 <td>Additions to header
<code><limits.h
></code></td>
1896 <td>Additions to header
<code><locale
></code></td>
1904 <td>Additions to header
<code><cmath
></code></td>
1920 <td>Definitions
</td>
1928 <td>Function template definitions
</td>
1936 <td>Additional overloads
</td>
1940 <td>DR
568; DR
550</td>
1944 <td>Additions to header
<code><math.h
></code></td>
1952 <td>Additions to header
<code><cstdarg
></code></td>
1960 <td>Additions to header
<code><stdarg.h
></code></td>
1968 <td>The header
<code><cstdbool
></code></td>
1976 <td>The header
<code><stdbool.h
></code></td>
1984 <td>The header
<code><cstdint
></code></td>
2000 <td>Definitions
</td>
2008 <td>The header
<code><stdint.h
></code></td>
2016 <td>Additions to header
<code><cstdio
></code></td>
2032 <td>Definitions
</td>
2040 <td>Additional format specifiers
</td>
2044 <td>C library responsibility
</td>
2048 <td>Additions to header
<code><stdio.h
></code></td>
2056 <td>Additions to header
<code><cstdlib
></code></td>
2072 <td>Definitions
</td>
2080 <td>Function
<code>abs
</code></td>
2088 <td>Function
<code>div
</code></td>
2096 <td>Additions to header
<code><stdlib.h
></code></td>
2104 <td>Header
<code><ctgmath
></code></td>
2112 <td>Header
<code><tgmath.h
></code></td>
2120 <td>Additions to header
<code><ctime
></code></td>
2124 <td>C library responsibility
</td>
2128 <td>Additions to header
<code><cwchar
></code></td>
2144 <td>Definitions
</td>
2152 <td>Additional wide format specifiers
</td>
2156 <td>C library responsibility
</td>
2160 <td>Additions to header
<code><wchar.h
></code></td>
2168 <td>Additions to header
<code><cwctype
></code></td>
2184 <td>Function
<code>iswblank
</code></td>
2192 <td>Additions to header
<code><wctype.h
></code></td>
2200 <td colspan=
"5"><b>Compatibility Features
</b></td>
2204 <td>Old iostream members
</td>
2216 <td><a href=
"http://gcc.gnu.org/PR33911">33911</a></td>
2220 <td>Class template
<code>auto_ptr
</code></td>
2224 <td><a href=
"http://gcc.gnu.org/PR33911">33911</a></td>
2236 The shared_ptr implementation uses some code from the
2237 <a href=
"http://www.boost.org/libs/smart_ptr/shared_ptr.htm">Boost
2238 shared_ptr
</a> library.
2244 Please send FSF
& GNU inquiries
& questions to
2245 <a href=
"mailto:gnu@gnu.org">gnu@gnu.org
</a>.
2246 There are also
<a href=
"http://www.gnu.org/home.html#ContactInfo">other ways
2247 to contact
</a> the FSF.
2251 These pages are maintained by
2252 <a href=
"http://gcc.gnu.org/about.html">the GCC team
</a>.
2256 For questions related to the use of GCC, please consult these web
2257 pages and the
<a href=
"http://gcc.gnu.org/onlinedocs/">GCC manuals
</a>. If
2258 that fails, the
<a href=
"mailto:gcc-help@gcc.gnu.org">gcc-help@gcc.gnu.org
</a>
2259 mailing list might help.
<br />
2260 Please send comments on these web pages and the development of GCC to our
2261 developer mailing list at
<a href=
"mailto:gcc@gnu.org">gcc@gnu.org
</a>
2262 or
<a href=
"mailto:gcc@gcc.gnu.org">gcc@gcc.gnu.org
</a>. All of our lists
2263 have
<a href=
"http://gcc.gnu.org/lists.html">public archives
</a>.
2267 Copyright (C) Free Software Foundation, Inc.,
2268 51 Franklin St, Fifth Floor, Boston, MA
02110, USA.
2271 Verbatim copying and distribution of this entire article is
2272 permitted in any medium, provided this notice is preserved.
2275 <table width=
"100%" border=
"0">
2278 <!-- IGNORE DIFF -->Last modified
2007-
10-
30
2280 <td align=
"right" valign=
"bottom">
2281 <a href=
"http://validator.w3.org/check/referer">
2282 <img src=
"http://www.w3.org/Icons/valid-xhtml10"
2283 alt=
"Valid XHTML 1.0" border=
"0" width=
"88" height=
"31" />