Status of C++0x features in GCC

This table is based on the table of contents of ISO/IEC Doc No: N2461=07-0331 Date: 2007-10-22 Working Draft, Standard for Programming Language C++

In this implementation -std=gnu++0x or -std=c++0x flags must be used to enable language and library features. The pre-defined symbol __GXX_EXPERIMENTAL_CXX0X__ is used to check for the presence of the required flag.

This page describes the C++0x support in mainline GCC SVN, not in any particular release.

Section Description Done Broken Missing Comments
20 General Utilities
20.2 Utility Components incomplete
20.2.1 Operators partial
20.2.2 forward/move helpers partial
20.2.3 Pairs done
20.3 Header <tuple> synopsis done
20.3.1 Class template tuple done
20.3.1.1 Construction done
20.3.1.2 Tuple creation functions done
20.3.1.3 Tuple helper classes done
20.3.1.4 Element access done
20.3.1.5 Relational operators done
20.4 Metaprogramming and type traits
20.4.1 Requirements done
20.4.2 Header <type_traits> synopsis done
20.4.3 Helper classes done
20.4.4 General Requirements done
20.4.5 Unary Type Traits done
20.4.5.1 Primary Type Categories done
20.4.5.2 Composite type traits done
20.4.5.3 Type properties done
20.4.6 Relationships between types done
20.4.7 Transformations between types done
20.4.7.1 Const-volatile modifications done
20.4.7.2 Reference modifications done
20.4.7.3 Array modifications done
20.4.7.4 Pointer modifications done
20.4.8 Other transformations done
20.4.9 Implementation requirements done
20.5 Function Objects done
20.5 Additions to header <functional> synopsis done
20.5.1 Definitions done
20.5.2 Requirements done
20.5.3 Base done
20.5.4 Function return types done
20.5.5 Class template reference_wrapper done
20.5.5.1 reference_wrapper construct/copy/destroy done
20.5.5.2 reference_wrapper assignment done
20.5.5.3 reference_wrapper access done
20.5.5.4 reference_wrapper invocation done
20.5.5.5 reference_wrapper helper functions done
20.5.14 Function template mem_fn done
20.5.11 Template function bind done
20.5.11.1 Function object binders done
20.5.11.1.1 Class template is_bind_expression done
20.5.11.1.2 Class template is_placeholder done
20.5.11.1.3 Function template bind done
20.5.11.1.4 Placeholders done
20.5.15 Polymorphic function wrappers done
20.5.15.1 Class bad_function_call done
20.5.15.1.1 bad_function_call constructor done
20.5.15.2 Class template function done
20.5.15.2.1 function construct/copy/destroy done
20.5.15.2.2 function modifiers done
20.5.15.2.3 function capacity done
20.5.15.2.4 function invocation done
20.5.15.2.5 function target access done
20.5.15.2.7 null pointer comparison operators done
20.5.15.2.8 specialized algorithms done
20.5.16 Class template hash done
20.6 Additions to header <memory> synopsis partial missing unique_ptr
20.6.5 Class template unique_ptr missing
20.6.6 Smart pointers done
20.6.6.1 Class bad_weak_ptr done
20.6.6.2 Class template shared_ptr done 1
20.6.6.2.1 shared_ptr constructors done
20.6.6.2.2 shared_ptr destructor done
20.6.6.2.3 shared_ptr assignment done
20.6.6.2.4 shared_ptr modifiers done
20.6.6.2.5 shared_ptr observers done
20.6.6.2.6 shared_ptr creation done N2351
20.6.6.2.7 shared_ptr comparison done
20.6.6.2.8 shared_ptr I/O done
20.6.6.2.9 shared_ptr specialized algorithms done
20.6.6.2.10 shared_ptr casts done
20.6.6.2.11 get_deleter done
20.6.6.3 Class template weak_ptr done
20.6.6.3.1 weak_ptr constructors done
20.6.6.3.2 weak_ptr destructor done
20.6.6.3.3 weak_ptr assignment done
20.6.6.3.4 weak_ptr modifiers done
20.6.6.3.5 weak_ptr observers done
20.6.6.3.6 weak_ptr comparison done
20.6.6.3.7 weak_ptr specialized algorithms done
20.6.6.4 Class template enable_shared_from_this done
23 Containers
23.2.1 Header <array> synopsis done
23.2.1 Class template array done
23.2.1.1 array constructors, copy, and assignment done
23.2.1.2 array specialized algorithms done
23.2.1.3 array size done
23.2.1.4 array data done
23.2.1.5 Zero sized arrays done
23.2.1.6 Tuple interface to class template array done
23.4 Unordered associative containers done
23.4.1 Class template unordered_map done
23.4.1.1 unordered_map constructors done
23.4.1.2 unordered_map element access done
23.4.1.3 unordered_map swap done
23.4.2 Class template unordered_multimap done
23.4.2.1 unordered_multimap constructors done
23.4.2.2 unordered_multimap swap done
23.4.3 Class template unordered_set done
23.4.3.1 unordered_set constructors done
23.4.3.2 unordered_set swap done
23.4.4 Class template unordered_multiset done
23.4.4.1 unordered_multiset constructors done
23.4.4.2 unordered_multiset swap done
26 Numerics
26.4 Random number generation done
26.4.1 Requirements done
26.4.2 Header <random> synopsis partial
26.4.3 Random number engine class templates done
26.4.3.1 Class template linear_congruential_engine done
26.4.3.2 Class template mersenne_twister_engine done
26.4.3.3 Class template subtract_with_carry_engine done
26.4.4 Random number engine adaptor class templates done
26.4.4.1 Class template discard_block_engine done
26.4.4.2 Class template independent_bits_engine done
26.4.4.3 Class template shuffle_order_engine done
26.4.4.4 Class template xor_combine_engine done operator()() per N2079
26.4.5 Engines and engine adaptors with predefined parameters done
26.4.6 Class random_device done
26.4.7 Utilities done
26.4.7.1 Class seed_seq missing
26.4.7.2 Function template generate_cannonical missing
26.4.8 Random number generation class templates done
26.4.8.1 Uniform distributions partial
26.4.8.1 Class template uniform_int_distribution missing
26.4.8.1 Class template uniform_real_distribution missing
26.4.8.2 Bernoulli distributions partial
26.4.8.2.1 Class bernoulli_distribution done
26.4.8.2.2 Class template binomial_distribution done
26.4.8.2.3 Class template geometric_distribution done
26.4.8.2.4 Class template negative_binomial_distribution missing
26.4.8.3 Poisson distributions partial
26.4.8.3.1 Class template poisson_distribution done
26.4.8.3.2 Class template exponential_distribution done
26.4.8.3.3 Class template gamma_distribution done
26.4.8.3.4 Class template weibull_distribution missing
26.4.8.3.5 Class template extreme_value_distribution missing
26.4.8.4 Normal distributions partial
26.4.8.4.1 Class template normal_distribution done
26.4.8.4.2 Class template lognormal_distribution missing
26.4.8.4.3 Class template chi_squared_distribution missing
26.4.8.4.4 Class template cauchy_distribution missing
26.4.8.4.5 Class template fisher_f_distribution missing
26.4.8.4.6 Class template student_t_distribution missing
26.4.8.5 Sampling distributions missing
26.4.8.5.1 Class template discrete_distribution missing
26.4.8.5.1 Class template piecewise_constant_distribution missing
26.4.8.5.1 Class template general_pdf_distribution missing
28 Regular expressions
28.1 Definitions missing
28.2 Requirements missing
28.3 Regular expressions summary missing
28.4 Header <regex> synopsis missing
28.5 Namespace tr1::regex_constants missing
28.5.1 Bitmask Type syntax_option_type missing
28.5.2 Bitmask Type regex_constants::match_flag_type missing
28.5.3 Implementation defined error_type missing
28.6 Class regex_error missing
28.7 Class template regex_traits missing
28.8 Class template basic_regex missing
28.8.1 basic_regex constants missing
28.8.2 basic_regex constructors missing
28.8.3 basic_regex assign missing
28.8.4 basic_regex constant operations missing
28.8.5 basic_regex locale missing
28.8.6 basic_regex swap missing
28.8.7 basic_regex non-member functions missing
28.8.7.1 basic_regex non-member swap missing
28.9 Class template sub_match missing
28.9.1 sub_match members missing
28.9.2 sub_match non-member operators missing
28.10 Class template match_results missing
28.10.1 match_results constructors missing
28.10.2 match_results size missing
28.10.3 match_results element access missing
28.10.4 match_results formatting missing
28.10.5 match_results allocator missing
28.10.6 match_results swap missing
28.11 Regular expression algorithms missing
28.11.1 exceptions missing
28.11.2 regex_match missing
28.11.3 regex_search missing
28.11.4 regex_replace missing
28.12 Regular expression Iterators missing
28.12.1 Class template regex_iterator missing
28.12.1.1 regex_iterator constructors missing
28.12.1.2 regex_iterator comparisons missing
28.12.1.3 regex_iterator dereference missing
28.12.1.4 regex_iterator increment missing
28.12.2 Class template regex_token_iterator missing
28.12.2.1 regex_token_iterator constructors missing
28.12.2.2 regex_token_iterator comparisons missing
28.12.2.3 regex_token_iterator dereference missing
28.12.2.4 regex_token_iterator increment missing
28.13 Modified ECMAScript regular expression grammar missing
C C compatibility
C2.1 Additions to header <complex> done
C2.1.1 Synopsis done
C2.1.2 Function acos done
C2.1.3 Function asin done
C2.1.4 Function atan done
C2.1.5 Function acosh done
C2.1.6 Function asinh done
C2.1.7 Function atanh done
C2.1.8 Function fabs done
C2.1.9 Additional Overloads done
C2.2 Header <ccomplex> missing DR 551
C2.3 Header <complex.h> missing DR 551
C2.4 Additions to header <cctype> done
C2.4.1 Synopsis done
C2.4.2 Function isblank done
C2.5 Additions to header <ctype.h> done
C2.6 Header <cfenv> done
C2.6.1 Synopsis done
C2.6.2 Definitions done
C2.7 Header <fenv.h> done
C2.8 Additions to header <cfloat> done
C2.9 Additions to header <float.h> done
C2.10 Additions to header <ios> missing
C2.10.1 Synopsis missing
C2.10.2 Function hexfloat missing
C2.11 Header <cinttypes> done
C2.11.1 Synopsis done DR 557
C2.11.2 Definitions done
C2.12 Header <inttypes.h> done
C2.13 Additions to header <climits> done
C2.14 Additions to header <limits.h> done
C2.15 Additions to header <locale> missing
C2.16 Additions to header <cmath> done
C2.16.1 Synopsis done
C2.16.2 Definitions done
C2.16.3 Function template definitions done
C2.16.4 Additional overloads done DR 568; DR 550
C2.17 Additions to header <math.h> done
C2.18 Additions to header <cstdarg> done
C2.19 Additions to header <stdarg.h> done
C2.20 The header <cstdbool> done
C2.21 The header <stdbool.h> done
C2.22 The header <cstdint> done
C2.22.1 Synopsis done
C2.22.2 Definitions done
C2.23 The header <stdint.h> done
C2.24 Additions to header <cstdio> done
C2.24.1 Synopsis done
C2.24.2 Definitions done
C2.24.3 Additional format specifiers done C library responsibility
C2.24.4 Additions to header <stdio.h> done
C2.25 Additions to header <cstdlib> done
C2.25.1 Synopsis done
C2.25.2 Definitions done
C2.25.3 Function abs done
C2.25.4 Function div done
C2.26 Additions to header <stdlib.h> done
C2.27 Header <ctgmath> done DR 551
C2.28 Header <tgmath.h> done DR 551
C2.29 Additions to header <ctime> done C library responsibility
C2.30 Additions to header <cwchar> done
C2.30.1 Synopsis done
C2.30.2 Definitions done
C2.30.3 Additional wide format specifiers done C library responsibility
C2.31 Additions to header <wchar.h> done
C2.32 Additions to header <cwctype> done
C2.32.1 Synopsis done
C2.32.2 Function iswblank done
C2.33 Additions to header <wctype.h> done
D Compatibility Features
D.6 Old iostream members done
D.8 Binders done 33911
D.9 Class template auto_ptr done 33911

Footnotes

  1. The shared_ptr implementation uses some code from the Boost shared_ptr library.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

These pages are maintained by the GCC team.

For questions related to the use of GCC, please consult these web pages and the GCC manuals. If that fails, the gcc-help@gcc.gnu.org mailing list might help.
Please send comments on these web pages and the development of GCC to our developer mailing list at gcc@gnu.org or gcc@gcc.gnu.org. All of our lists have public archives.

Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA.

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Last modified 2007-10-30 Valid XHTML 1.0