Status of TR1 features in GCC

This table is based on the table of contents of ISO/IEC DTR 19768 Doc No: N1836=05-0096 Date: 2005-06-24 Draft Technical Report on C++ Library Extensions

In this implementation the header names are prefixed by tr1/, for instance <tr1/functional>, <tr1/memory>, and so on.

This page describes the TR1 support in mainline GCC CVS, not in any particular release.

Section Description Done Broken Missing Comments
2 General Utilities
2.1 Reference wrappers done
2.1.1 Additions to header <functional> synopsis done
2.1.2 Class template reference_wrapper done
2.1.2.1 reference_wrapper construct/copy/destroy done
2.1.2.2 reference_wrapper assignment done
2.1.2.3 reference_wrapper access done
2.1.2.4 reference_wrapper invocation done
2.1.2.5 reference_wrapper helper functions done
2.2 Smart pointers done
2.2.1 Additions to header <memory> synopsis done
2.2.2 Class bad_weak_ptr done
2.2.3 Class template shared_ptr done 1
2.2.3.1 shared_ptr constructors done
2.2.3.2 shared_ptr destructor done
2.2.3.3 shared_ptr assignment done
2.2.3.4 shared_ptr modifiers done
2.2.3.5 shared_ptr observers done
2.2.3.6 shared_ptr comparison done
2.2.3.7 shared_ptr I/O done
2.2.3.8 shared_ptr specialized algorithms done
2.2.3.9 shared_ptr casts done
2.2.3.10 get_deleter done
2.2.4 Class template weak_ptr done
2.2.4.1 weak_ptr constructors done
2.2.4.2 weak_ptr destructor done
2.2.4.3 weak_ptr assignment done
2.2.4.4 weak_ptr modifiers done
2.2.4.5 weak_ptr observers done
2.2.4.6 weak_ptr comparison done
2.2.4.7 weak_ptr specialized algorithms done
2.2.5 Class template enable_shared_from_this done
3 Function objects
3.1 Definitions done
3.2 Additions to <functional> synopsis done
3.3 Requirements done
3.4 Function return types done
3.5 Function template mem_fn done
3.6 Function object binders done
3.6.1 Class template is_bind_expression done
3.6.2 Class template is_placeholder done
3.6.3 Function template bind done
3.6.4 Placeholders done
3.7 Polymorphic function wrappers done
3.7.1 Class bad_function_call done
3.7.1.1 bad_function_call constructor done
3.7.2 Class template function done
3.7.2.1 function construct/copy/destroy done
3.7.2.2 function modifiers done
3.7.2.3 function capacity done
3.7.2.4 function invocation done
3.7.2.5 function target access done
3.7.2.6 undefined operators done
3.7.2.7 null pointer comparison operators done
3.7.2.8 specialized algorithms done
4 Metaprogramming and type traits
4.1 Requirements done
4.2 Header <type_traits> synopsis done
4.3 Helper classes done
4.4 General Requirements done
4.5 Unary Type Traits done
4.5.1 Primary Type Categories done
4.5.2 Composite type traits done
4.5.3 Type properties done
4.6 Relationships between types done
4.7 Transformations between types done
4.7.1 Const-volatile modifications done
4.7.2 Reference modifications done
4.7.3 Array modifications done
4.7.4 Pointer modifications done
4.8 Other transformations done
4.9 Implementation requirements done
5 Numerical facilities
5.1 Random number generation done
5.1.1 Requirements done
5.1.2 Header <random> synopsis done
5.1.3 Class template variate_generator done
5.1.4 Random number engine class templates done
5.1.4.1 Class template linear_congruential done
5.1.4.2 Class template mersenne_twister done
5.1.4.3 Class template subtract_with_carry done
5.1.4.4 Class template subtract_with_carry_01 done
5.1.4.5 Class template discard_block done
5.1.4.6 Class template xor_combine done operator()() per N2079
5.1.5 Engines with predefined parameters done
5.1.6 Class random_device done
5.1.7 Random distribution class templates done
5.1.7.1 Class template uniform_int done
5.1.7.2 Class bernoulli_distribution done
5.1.7.3 Class template geometric_distribution done
5.1.7.4 Class template poisson_distribution done
5.1.7.5 Class template binomial_distribution done
5.1.7.6 Class template uniform_real done
5.1.7.7 Class template exponential_distribution done
5.1.7.8 Class template normal_distribution done
5.1.7.9 Class template gamma_distribution done
5.2 Mathematical special functions missing
5.2.1 Additions to header <cmath> synopsis missing
5.2.1.1 associated Laguerre polynomials missing
5.2.1.2 associated Legendre functions missing
5.2.1.3 beta function missing
5.2.1.4 (complete) elliptic integral of the first kind missing
5.2.1.5 (complete) elliptic integral of the second kind missing
5.2.1.6 (complete) elliptic integral of the third kind missing
5.2.1.7 confluent hypergeometric functions missing
5.2.1.8 regular modified cylindrical Bessel functions missing
5.2.1.9 cylindrical Bessel functions (of the first kind) missing
5.2.1.10 irregular modified cylindrical Bessel functions missing
5.2.1.11 cylindrical Neumann functions missing
5.2.1.12 (incomplete) elliptic integral of the first kind missing
5.2.1.13 (incomplete) elliptic integral of the second kind missing
5.2.1.14 (incomplete) elliptic integral of the third kind missing
5.2.1.15 exponential integral missing
5.2.1.16 Hermite polynomials missing
5.2.1.17 hypergeometric functions missing
5.2.1.18 Laguerre polynomials missing
5.2.1.19 Legendre polynomials missing
5.2.1.20 Riemann zeta function missing
5.2.1.21 spherical Bessel functions (of the first kind) missing
5.2.1.22 spherical associated Legendre functions missing
5.2.1.23 spherical Neumann functions missing
5.2.2 Additions to header <math.h> synopsis missing
6 Containers
6.1 Tuple types done
6.1.1 Header <tuple> synopsis done
6.1.2 Additions to header <utility> synopsis done
6.1.3 Class template tuple done
6.1.3.1 Construction done
6.1.3.2 Tuple creation functions done
6.1.3.3 Tuple helper classes done
6.1.3.4 Element access done
6.1.3.5 Relational operators done
6.1.4 Pairs done
6.2 Fixed size array done
6.2.1 Header <array> synopsis done
6.2.2 Class template array done
6.2.2.1 array constructors, copy, and assignment done
6.2.2.2 array specialized algorithms done
6.2.2.3 array size done
6.2.2.4 Zero sized arrays done
6.2.2.5 Tuple interface to class template array done
6.3 Unordered associative containers done
6.3.1 Unordered associative container requirements done
6.3.1.1 Exception safety guarantees done
6.3.2 Additions to header <functional> synopsis done
6.3.3 Class template hash done
6.3.4 Unordered associative container classes done
6.3.4.1 Header <unordered_set> synopsis done
6.3.4.2 Header <unordered_map> synopsis done
6.3.4.3 Class template unordered_set done
6.3.4.3.1 unordered_set constructors done
6.3.4.3.2 unordered_set swap done
6.3.4.4 Class template unordered_map done
6.3.4.4.1 unordered_map constructors done
6.3.4.4.2 unordered_map element access done
6.3.4.4.3 unordered_map swap done
6.3.4.5 Class template unordered_multiset done
6.3.4.5.1 unordered_multiset constructors done
6.3.4.5.2 unordered_multiset swap done
6.3.4.6 Class template unordered_multimap done
6.3.4.6.1 unordered_multimap constructors done
6.3.4.6.2 unordered_multimap swap done
7 Regular expressions
7.1 Definitions missing
7.2 Requirements missing
7.3 Regular expressions summary missing
7.4 Header <regex> synopsis missing
7.5 Namespace tr1::regex_constants missing
7.5.1 Bitmask Type syntax_option_type missing
7.5.2 Bitmask Type regex_constants::match_flag_type missing
7.5.3 Implementation defined error_type missing
7.6 Class regex_error missing
7.7 Class template regex_traits missing
7.8 Class template basic_regex missing
7.8.1 basic_regex constants missing
7.8.2 basic_regex constructors missing
7.8.3 basic_regex assign missing
7.8.4 basic_regex constant operations missing
7.8.5 basic_regex locale missing
7.8.6 basic_regex swap missing
7.8.7 basic_regex non-member functions missing
7.8.7.1 basic_regex non-member swap missing
7.9 Class template sub_match missing
7.9.1 sub_match members missing
7.9.2 sub_match non-member operators missing
7.10 Class template match_results missing
7.10.1 match_results constructors missing
7.10.2 match_results size missing
7.10.3 match_results element access missing
7.10.4 match_results formatting missing
7.10.5 match_results allocator missing
7.10.6 match_results swap missing
7.11 Regular expression algorithms missing
7.11.1 exceptions missing
7.11.2 regex_match missing
7.11.3 regex_search missing
7.11.4 regex_replace missing
7.12 Regular expression Iterators missing
7.12.1 Class template regex_iterator missing
7.12.1.1 regex_iterator constructors missing
7.12.1.2 regex_iterator comparisons missing
7.12.1.3 regex_iterator dereference missing
7.12.1.4 regex_iterator increment missing
7.12.2 Class template regex_token_iterator missing
7.12.2.1 regex_token_iterator constructors missing
7.12.2.2 regex_token_iterator comparisons missing
7.12.2.3 regex_token_iterator dereference missing
7.12.2.4 regex_token_iterator increment missing
7.13 Modified ECMAScript regular expression grammar missing
8 C compatibility
8.1 Additions to header <complex> done
8.1.1 Synopsis done
8.1.2 Function acos done
8.1.3 Function asin done
8.1.4 Function atan done
8.1.5 Function acosh done
8.1.6 Function asinh done
8.1.7 Function atanh done
8.1.8 Function fabs done
8.1.9 Additional Overloads done
8.2 Header <ccomplex> missing DR 551
8.3 Header <complex.h> missing DR 551
8.4 Additions to header <cctype> done
8.4.1 Synopsis done
8.4.2 Function isblank done
8.5 Additions to header <ctype.h> done
8.6 Header <cfenv> done
8.6.1 Synopsis done
8.6.2 Definitions done
8.7 Header <fenv.h> done
8.8 Additions to header <cfloat> done
8.9 Additions to header <float.h> done
8.10 Additions to header <ios> missing
8.10.1 Synopsis missing
8.10.2 Function hexfloat missing
8.11 Header <cinttypes> done
8.11.1 Synopsis done DR 557
8.11.2 Definitions done
8.12 Header <inttypes.h> done
8.13 Additions to header <climits> done
8.14 Additions to header <limits.h> done
8.15 Additions to header <locale> missing
8.16 Additions to header <cmath> done
8.16.1 Synopsis done
8.16.2 Definitions done
8.16.3 Function template definitions done
8.16.4 Additional overloads done DR 568; DR 550
8.17 Additions to header <math.h> done
8.18 Additions to header <cstdarg> done
8.19 Additions to header <stdarg.h> done
8.20 The header <cstdbool> done
8.21 The header <stdbool.h> done
8.22 The header <cstdint> done
8.22.1 Synopsis done
8.22.2 Definitions done
8.23 The header <stdint.h> done
8.24 Additions to header <cstdio> done
8.24.1 Synopsis done
8.24.2 Definitions done
8.24.3 Additional format specifiers done C library responsability
8.24.4 Additions to header <stdio.h> done
8.25 Additions to header <cstdlib> done
8.25.1 Synopsis done
8.25.2 Definitions done
8.25.3 Function abs done
8.25.4 Function div done
8.26 Additions to header <stdlib.h> done
8.27 Header <ctgmath> done DR 551
8.28 Header <tgmath.h> done DR 551
8.29 Additions to header <ctime> done C library responsability
8.30 Additions to header <cwchar> done
8.30.1 Synopsis done
8.30.2 Definitions done
8.30.3 Additional wide format specifiers done C library responsability
8.31 Additions to header <wchar.h> done
8.32 Additions to header <cwctype> done
8.32.1 Synopsis done
8.32.2 Function iswblank done
8.33 Additions to header <wctype.h> done

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 2006-10-01 Valid XHTML 1.0