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