ISO C++
200x
C++ 200x
This table is based on the table of contents of ISO/IEC
Doc No: N3000=09-0190 Date: 2009-11-09
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.
C++ 200x Implementation Status
Section
Description
Status
Comments
18
Language support
18.1
General
Y
18.2
Types
Partial
Missing offsetof, max_align_t, nullptr_t
18.3
Implementation properties
18.3.1
Numeric Limits
18.3.1.1
Class template numeric_limits
Y
18.3.1.2
numeric_limits
members
Partial
Missing constexpr
18.3.1.3
float_round_style
N
18.3.1.4
float_denorm_style
N
18.3.1.5
numeric_limits
specializations
Y
18.3.2
C Library
Y
18.4
Integer types
18.4.1
Header <cstdint>
synopsis
Y
18.4.2
The header <stdint.h>
Partial
May use configure-generated stdint.h via GCC_HEADER_STDINT
18.5
Start and termination
Partial
Missing quick_exit, at_quick_exit
18.6
Dynamic memory management
Y
18.7
Type identification
18.7.1
Class type_info
Y
18.7.2
Class type_index
N
18.7.3
Class bad_cast
Y
18.7.4
Class bad_typeid
Y
18.8
Exception handling
18.8.1
Class exception
Y
18.8.2
Violation exception-specifications
Y
18.8.3
Abnormal termination
Y
18.8.4
uncaught_exception
Y
18.8.5
Propagation
Y
18.8.6
Class nested_exception
Y
18.9
Initializer lists
18.9.1
Initializer list constructors
Y
18.9.2
Initializer list access
Y
18.9.3
Initializer list concept maps
N
18.10
Other runtime support
Y
19
Diagnostics
19.1
General
Y
19.2
Exception classes
Y
19.3
Assertions
Y
19.4
Error numbers
Y
19.5
System error support
19.5.1
Class error_category
Y
19.5.2
Class error_code
Partial
Missing concept ErrorCodeEnum
19.5.3
Class error_condition
Partial
Missing concept ErrorConditionEnum
19.5.4
Comparison operators
Y
19.5.5
Class system_error
Y
20
General utilities
20.1
General
Partial
Missing all concepts
20.2
Concepts
N
20.3
Utility components
20.3.1
Operators
Y
20.3.2
forward
and move
helpers
Y
20.3.3
pair
Y
20.3.4
tuple-like access to pair
Y
20.3.5
Range concept maps for pair
N
20.3.6
Class template bitset
Partial
Missing constexpr
20.4
Compile-time rational arithmetic
20.4.1
Class template ratio
Y
20.4.2
Arithmetic on ratio
types
Y
20.4.3
Comparison of ratio
types
Y
20.4.4
SI types
Y
20.5
Tuples
20.5.1
General
Y
20.5.2
Class template tuple
Partial
Missing range concept maps
20.6
Metaprogramming and type traits
20.6.1
Requirements
Y
20.6.2
Header <type_traits>
synopsis
20.6.3
Helper classes
Y
20.6.4
Unary Type Traits
20.6.4.1
Primary type categories
Y
20.6.4.2
Composite type traits
Y
20.6.4.3
Type properties
Partial
Missing is_system_layout
20.6.5
Relationships between types
Y
20.6.6
Transformations between types
20.6.6.1
Const-volatile modifications
Y
20.6.6.2
Reference modifications
Y
20.6.6.3
Sign modifications
Y
20.6.6.4
Array modifications
Y
20.6.6.5
Pointer modifications
Y
20.6.7
Other transformations
Partial
Missing decay
20.7
Function objects
20.7.1
Definitions
Y
20.7.3
Base
Y
20.7.4
Function object return types
Y
20.7.5
Class template reference_wrapper
Y
20.7.6
Identity operation
N
20.7.7
Arithmetic operation
Y
20.7.8
Comparisons
Y
20.7.9
Logical operations
Y
20.7.10
Bitwise operations
Y
20.7.11
Negators
Y
20.7.12
Template function
and function template bind
Y
20.7.13
Adaptors for pointers to functions
Y
20.7.14
Adaptors for pointers to members
Y
20.7.15
Function template mem_fn
Y
20.7.16
Polymorphic function wrappers
20.7.16.1
Class bad_function_call
Y
20.7.16.2
Class template function
Y
20.7.17
Class template hash
Y
20.7.18
Class template reference_closure
N
20.8
Memory
20.8.01
Allocator argument tag
N
20.8.02
Allocators
20.8.02.1
General
Y
20.8.02.2
Allocator concept
N
20.8.02.3
Support for legacy allocators
N
20.8.02.4
Allocator and Legacy Allocator members
N
20.8.03
Allocator-related element concepts
N
20.8.04
Allocator propagation traits
N
20.8.05
Allocator propagation map
N
20.8.06
The default allocator
Y
20.8.07
Scoped allocator adaptor
20.8.07.1
scoped_allocator_adaptor_base
N
20.8.07.2
scoped_allocator_adaptor constructors
N
20.8.07.3
scoped_allocator_adaptor2
N
20.8.07.3
scoped_allocator_adaptor members
N
20.8.07.4
scoped_allocator_adaptor globals
N
20.8.08
Raw storage iterator
Y
20.8.09
Temporary buffers
Y
20.8.10
construct_element
N
20.8.11
Specialized algorithms
20.8.11.1
addressof
N
20.8.11.2
uninitialized_copy
Y
20.8.11.3
uninitialized_fill
Y
20.8.11.4
uninitialized_fill_n
Y
20.8.12
Class template unique_ptr
Y
20.8.13
Smart pointers
20.8.13.1
Class bad_weak_ptr
Y
20.8.13.2
Class template shared_ptr
Y
Uses code from
boost::shared_ptr.
20.8.13.3
Class template weak_ptr
Y
20.8.13.4
Class template owner_less
Y
20.8.13.5
Class template emable_shared_from_this
Y
20.8.13.6
shared_ptr
atomic access
Partial
20.8.13.7
Pointer safety
Partial
20.8.14
Align
N
20.8.15
C library
Y
20.9
Time utilities
20.9.1
Clock requirements
Y
20.9.2
Time-related traits
20.9.2.1
treat_as_floating_point
Y
20.9.2.2
duration_values
Partial
Missing constexpr
20.9.2.3
Specializations of common_type
Y
20.9.3
Class template duration
Partial
Missing constexpr
20.9.4
Class template time_point
Partial
Missing constexpr
20.9.5
Clocks
20.9.5.1
Class system_clock
Y
20.9.5.2
Class monotonic_clock
Y
20.9.5.3
Class high_resolution_clock
Y
20.10
Date and time functions
Y
21
Strings
21.1
General
Y
21.2
Character traits
21.2.1
Character traits requirements
Y
21.2.2
traits typedef
Y
21.2.3
char_traits
specializations
21.2.3.1
struct char_traits<char>
Partial
Missing constexpr
21.2.3.2
struct char_traits<char16_t>
Partial
Missing constexpr
21.2.3.3
struct char_traits<char32_t>
Partial
Missing constexpr
21.2.3.4
struct char_traits<wchar_t>
Partial
Missing constexpr
21.3
String classes
Y
21.4
Class template basic_string
Y
21.5
Numeric Conversions
Y
21.6
Null-terminated sequence utilities
Y
C library dependency
22
Localization
22.1
General
Y
22.2
Header <locale>
synopsis
Y
22.3
Locales
22.3.1
Class locale
Y
22.3.2
locale
globals
Y
22.3.3
Convenience interfaces
22.3.3.1
Character classification
Y
22.3.3.2
Conversions
22.3.3.2.1
Character
Y
22.3.3.2.2
String
N
22.3.3.2.3
Buffer
N
22.4
Standard locale categories
22.4.1
ctype
Y
22.4.2
Numeric
22.4.2.1
num_get
Y
22.4.2.2
num_put
Y
22.4.3
num_punct
Y
22.4.4
collate
Y
22.4.5
Time
22.4.5.1
time_get
Y
22.4.5.2
time_get_byname
Y
22.4.5.3
time_put
Y
22.4.5.3
time_put_byname
Y
22.4.6
Monetary
22.4.6.1
money_get
Y
22.4.6.2
money_put
Y
22.4.6.3
money_punct
Y
22.4.6.4
money_punct_byname
Y
22.4.7
messages
Y
22.4.8
Program-defined facets
Y
22.5
Standard code conversion facets
N
22.6
C Library Locales
Y
23
Containers
23.1
General
Partial
Missing concepts
23.2
Container requirements
23.2.1
General requirements
Partial
Missing construct_element
23.2.2
Data races
Y
23.3
Sequence containers
23.3.1
Class template array
Partial
Missing constexpr
23.3.2
Class template deque
Y
23.3.3
Class template forward_list
Y
23.3.4
Class template list
Y
23.3.5
Adaptors
23.3.5.1
Class template queue
Y
23.3.5.2
Class template priority_queue
Y
23.3.5.3
Class template stack
Y
23.3.6
Class template vector
Y
23.3.7
Class vector<bool>
Y
23.4
Associative containers
23.4.1
Class template map
Y
23.4.2
Class template multimap
Y
23.4.3
Class template set
Y
23.4.4
Class template multiset
Y
23.5
Unordered associative containers
23.5.1
Class template unordered_map
Y
23.5.2
Class template unordered_multimap
Y
23.5.3
Class template unordered_set
Y
23.5.4
Class template unordered_multiset
Y
24
Iterators
24.1
General
Partial
Missing concepts
24.2
Iterator concepts
N
24.3
Header <iterator>
synopsis
Partial
Missing concepts
24.4
Iterator operations
Y
24.5
Predefined iterators and Iterator adaptors
24.5.1
Reverse iterators
Y
24.5.2
Insert iterators
Y
24.5.3
Move iterators
Y
24.6
Stream iterators
24.6.1
Class template istream_iterator
Y
24.6.2
Class template ostream_iterator
Y
24.6.3
Class template istreambuf_iterator
Y
24.6.4
Class template ostreambuf_iterator
Y
24.7
Insert iterators
24.7.1
Class template back_insert_iterator
Y
24.7.3
Class template front_insert_iterator
Y
24.7.5
Class template insert_iterator
Y
25
Algorithms
25.1
General
Partial
Missing concepts
25.2
Header <algorithm>
synopsis
Y
25.3
Non-modifying sequence operations
Y
25.4
Mutating sequence operations
Y
25.5
Sorting and related operations
Y
25.6
C library algorithms
Y
26
Numerics
26.1
General
Y
26.2
Numeric type requirements
Y
26.3
The floating-point environment
Y
26.4
Complex numbers
Partial
Missing constexpr
26.5
Random number generation
26.5.1
Header <random>
synopsis
Partial
Missing concepts
26.5.2
Concepts and related requirements
N
26.5.3
Random number engines
26.5.3.1
Class template linear_congruential_engine
Y
Missing constexpr
26.5.3.2
Class template mersenne_twister_engine
Y
Missing constexpr
26.5.3.3
Class template subtract_with_carry_engine
Y
Missing constexpr
26.5.4
Random number engine adaptors
26.5.4.1
Class template discard_block_engine
Y
Missing constexpr
26.5.4.2
Class template independent_bits_engine
Y
Missing constexpr
26.5.4.3
Class template shuffle_order_engine
Y
Missing constexpr
26.5.5
Engines and engine adaptors with predefined parameters
Y
26.5.6
Class random_device
Y
Missing constexpr
26.5.7
Utilities
26.5.7.1
Class seed_seq
Y
26.5.7.2
Function template generate_canonical
Y
26.5.8
Random number distributions
26.5.8.1
Uniform distributions
26.5.8.1.1
Class template uniform_int_distribution
Y
26.5.8.1.2
Class template uniform_real_distribution
Y
26.5.8.2
Bernoulli distributions
26.5.8.2.1
Class bernoulli_distribution
Y
26.5.8.2.2
Class template binomial_distribution
Y
26.5.8.2.3
Class template geometric_distribution
Y
26.5.8.2.4
Class template negative_binomial_distribution
Y
26.5.8.3
Poisson distributions
26.5.8.3.1
Class template poisson_distribution
Y
26.5.8.3.2
Class template exponential_distribution
Y
26.5.8.3.3
Class template gamma_distribution
Y
26.5.8.3.4
Class template weibull_distribution
Y
26.5.8.3.5
Class template extreme_value_distribution
Y
26.5.8.4
Normal distributions
26.5.8.4.1
Class template normal_distribution
Y
26.5.8.4.2
Class template lognormal_distribution
Y
26.5.8.4.3
Class template chi_squared_distribution
Y
26.5.8.4.4
Class template cauchy_distribution
Y
26.5.8.4.5
Class template fisher_f_distribution
Y
26.5.8.4.6
Class template student_t_distribution
Y
26.5.8.5
Sampling distributions
26.5.8.5.1
Class template discrete_distribution
Y
26.5.8.5.2
Class template piecewise_constant_distribution
Y
26.5.8.5.3
Class template piecewise_linear_distribution
Y
26.6
Numeric arrays
26.6.1
Header <valarray>
synopsis
Y
26.6.2
Class template valarray
Y
26.6.3
valarray
non-member operations
Y
26.6.4
Class slice
Y
26.6.5
Class template slice_array
Y
26.6.6
Class gslice
Y
26.6.7
Class template gslice_array
Y
26.6.8
Class template mask_array
Y
26.6.9
Class template indirect_array
Y
26.7
Generalized numeric operations
26.7.1
accumulate
Y
26.7.2
inner_product
Y
26.7.3
partial_sum
Y
26.7.4
adjacent_difference
Y
26.7.5
iota
Y
26.8
C Library
Y
27
Input/output
27.1
General
Y
27.2
Requirements
Y
27.2.1
Imbue limitations
Y
27.2.2
Positioning type limitations
Y
27.2.3
Thread safety
Partial
27.3
Forward declarations
Y
27.4
Standard iostream objects
Y
27.4.1
Narrow stream objects
Y
27.4.2
Wide stream objects
Y
27.5
Iostreams base classes
Y
27.6
Stream buffers
Y
27.7
Formatting and manipulators
Y
27.8
String-based streams
Y
27.9
File-based streams
Y
28
Regular expressions
28.01
General
N
28.02
Definitions
N
28.03
Requirements
N
28.04
Regular expressions summary
N
28.05
Header <regex>
synopsis
N
28.06
Namespace std::regex_constants
Y
28.07
Class regex_error
Y
28.08
Class template regex_traits
Partial
28.09
Class template basic_regex
Partial
28.10
Class template sub_match
Partial
28.11
Class template match_results
Partial
28.12
Regular expression algorithms
N
28.13
Regular expression Iterators
N
28.14
Modified ECMAScript regular expression grammar
N
29
Atomic operations
29.1
General
Y
29.2
Header <atomic>
synopsis
Y
29.3
Order and consistency
N
29.4
Lock-free property
Y
Based on _GLIBCXX_ATOMIC_PROPERTY
29.5
Atomic types
29.5.1
Integral types
Y
Missing constexpr
29.5.2
Address types
Y
Missing constexpr
29.5.3
Generic types
Y
Missing constexpr
29.6
Operations on atomic types
Y
29.7
Flag Type and operations
Y
29.8
Fences
N
30
Thread support
30.1
General
Y
30.2
Requirements
Y
30.3
Threads
30.3.1
Class thread
Partial
Missing futures
30.3.2
Namespace this_thread
Y
30.4
Mutual exclusion
30.4.1
Mutex requirements
30.4.1.1
Class mutex
Y
30.4.1.2
Class recursive_mutex
Y
30.4.2
Timed mutex requirements
30.4.2.1
Class timed_mutex
Y
30.4.2.2
Class recursive_timed_mutex
Y
30.4.3
Locks
30.4.3.1
Class template lock_guard
Y
30.4.3.2
Class template unique_lock
Y
30.4.4
Generic locking algorithms
Y
30.4.5
Call once
30.4.5.1
once_flag
Partial
Missing constexpr
30.4.5.2
call_once
Y
30.5
Condition variables
30.5.1
Class condition_variable
Y
30.5.2
Class condition_variable_any
Partial
30.6
Futures
30.6.1
Overview
N
30.6.2
Error handling
N
30.6.3
Class future_error
N
30.6.4
Class template unique_future
N
30.6.5
Class template shared_future
N
30.6.6
Class template promise
N
30.6.7
Allocator templates
N
30.6.8
Class template packaged_task
N
Appendix D
Compatibility features
D.1
Increment operator with bool operand
D.2
static
keyword
D.3
Access declarations
D.4
Implicit conversion from const strings
D.5
C standard library headers
D.6
Old iostreams members
D.7
char* streams
D.8
Binders
D.9
auto_ptr
D.10
Iterator primitives