C++ 200x
ISO C++
200x
This table is based on the table of contents of ISO/IEC
JTC1 SC22 WG21 Doc No: N3092 Date: 2010-03-26
Final Committee 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. See dialect
options. 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 StatusSectionDescriptionStatusComments18Language support18.1GeneralY18.2TypesPartialMissing offsetof, max_align_t18.3Implementation properties18.3.1Numeric Limits18.3.1.1Class template numeric_limitsY18.3.1.2numeric_limits membersY18.3.1.3float_round_styleN18.3.1.4float_denorm_styleN18.3.1.5numeric_limits specializationsY18.3.2C LibraryY18.4Integer types18.4.1Header <cstdint> synopsisY18.5Start and terminationPartialC library dependency for quick_exit, at_quick_exit18.6Dynamic memory managementY18.7Type identification18.7.1Class type_infoY18.7.2Class bad_castY18.7.3Class bad_typeidY18.8Exception handling18.8.1Class exceptionY18.8.2Violating exception-specificationsY18.8.3Abnormal terminationY18.8.4uncaught_exceptionY18.8.5Exception PropagationY18.8.6nested_exceptionY18.9Initializer lists18.9.1Initializer list constructorsY18.9.2Initializer list accessY18.9.3Initializer list range accessN18.10Other runtime supportY19Diagnostics19.1GeneralY19.2Exception classesY19.3AssertionsY19.4Error numbersY19.5System error support19.5.1Class error_categoryY19.5.2Class error_codeY19.5.3Class error_conditionY19.5.4Comparison operatorsY19.5.5Class system_errorY20General utilities20.1General20.2Requirements20.3Utility components20.3.1OperatorsY20.3.2SwapY20.3.3forward and move helpersY20.3.4Function template declvalY20.3.5Pairs20.3.5.1In general20.3.5.2Class template pairY20.3.5.3Tuple-like access to pairY20.3.5.5Piecewise constructionY20.4Tuples20.4.1In general20.4.2Class template tupleY20.5Class template bitsetY20.6Compile-time rational arithmetic20.6.1Class template ratioY20.6.2Arithmetic on ratio typesY20.6.3Comparison of ratio typesY20.6.4SI types for ratioY20.7Metaprogramming and type traits20.7.1RequirementsY20.7.2Header <type_traits> synopsis20.7.3Helper classesY20.7.4Unary Type TraitsY20.7.4.1Primary type categoriesY20.7.4.2Composite type traitsY20.7.4.3Type propertiesPartialMissing is_trivially_copyable, is_nothrow_constructible20.7.5Relationships between typesY20.7.6Transformations between typesPartialMissing underlying_type20.7.6.1Const-volatile modificationsY20.7.6.2Reference modificationsY20.7.6.3Sign modificationsY20.7.6.4Array modificationsY20.7.6.5Pointer modificationsY20.7.6.6Other transformationsY20.8Function objects20.8.1DefinitionsY20.8.2RequirementsY20.8.3BaseY20.8.4Class template reference_wrapperY20.8.5Arithmetic operationY20.8.6ComparisonsY20.8.7Logical operationsY20.8.8Bitwise operationsY20.8.9NegatorsY20.8.10Function template bindY20.8.11Adaptors for pointers to functionsY20.8.12Adaptors for pointers to membersY20.8.13Function template mem_fnPartialMissing overloads for reference-qualified member functions20.8.14Polymorphic function wrappers20.8.14.1Class bad_function_callY20.8.14.2Class template functionPartialMissing allocator support20.8.15Class template hashY20.9Memory20.9.1Allocator argument tagY20.9.2uses_allocatorY20.9.3Pointer traitsN20.9.4Allocator traitsN20.9.5The default allocatorY20.9.6Scoped allocator adaptor20.9.6.1Scoped allocator adaptor member typesN20.9.6.2Scoped allocator adaptor constructorsN20.9.6.3Scoped allocator adaptor membersN20.9.7Raw storage iteratorY20.9.8Temporary buffersY20.9.9Specialized algorithms20.9.9.1addressofY20.9.9.2uninitialized_copyY20.9.9.3uninitialized_fillY20.9.9.4uninitialized_fill_nY20.9.10Class template unique_ptrY20.9.11Smart pointers20.9.11.1Class bad_weak_ptrY20.9.11.2Class template shared_ptrY
Uses code from
boost::shared_ptr.
20.9.11.3Class template weak_ptrY20.9.11.4Class template emable_shared_from_thisY20.9.11.5shared_ptr atomic accessPartial20.9.11.6Hash supportY20.9.12Pointer safetyPartial20.9.13AlignN20.9.16C libraryY20.10Time utilities20.10.1Clock requirementsY20.10.2Time-related traits20.10.2.1treat_as_floating_pointY20.10.2.2duration_valuesY20.10.2.3Specializations of common_typeY20.10.3Class template durationY20.10.4Class template time_pointY20.10.5Clocks20.10.5.1Class system_clockY20.10.5.2Class monotonic_clockY20.10.5.3Class high_resolution_clockY20.11Date and time functionsY20.12Class type_indexN21Strings21.1GeneralY21.2Character traits21.2.1Character traits requirementsY21.2.2traits typedefsY21.2.3char_traits specializations21.2.3.1struct char_traits<char>PartialMissing constexpr21.2.3.2struct char_traits<char16_t>PartialMissing constexpr21.2.3.3struct char_traits<char32_t>Y21.2.3.4struct char_traits<wchar_t>Y21.3String classesY21.4Class template basic_stringY21.5Numeric ConversionsY21.6Hash supportY21.7Null-terminated sequence utilitiesYC library dependency22Localization22.1GeneralY22.2Header <locale> synopsisY22.3Locales22.3.1Class localeY22.3.2locale globalsY22.3.3Convenience interfaces22.3.3.1Character classificationY22.3.3.2Conversions22.3.3.2.1Character conversionsY22.3.3.2.2string conversionsN22.3.3.2.3Buffer conversionsN22.4Standard locale categories22.4.1The ctype categoryY22.4.2The numeric category22.4.2.1num_getY22.4.2.2num_putY22.4.3The numeric punctuation facetY22.4.4The collate categoryY22.4.5The time category22.4.5.1Class template time_getY22.4.5.2Class template time_get_bynameY22.4.5.3Class template time_putY22.4.5.3Class template time_put_bynameY22.4.6The monetary category22.4.6.1Class template money_getY22.4.6.2Class template money_putY22.4.6.3Class template money_punctY22.4.6.4Class template money_punct_bynameY22.4.7The message retrieval categoryY22.4.8Program-defined facetsY22.5Standard code conversion facetsN22.6C Library LocalesY23Containers23.1General23.2Container requirements23.2.1General container requirementsY23.2.2Data racesY23.2.3Sequence containersY23.2.4Associative containersY23.2.5Unordered associative containersY23.3Sequence containers23.3.1Class template arrayY23.3.2Class template dequeY23.3.3Class template forward_listY23.3.4Class template listY23.3.5Container adaptors23.3.5.1Class template queueY23.3.5.2Class template priority_queueY23.3.5.3Class template stackY23.3.6Class template vectorY23.3.7Class vector<bool>Y23.4Associative containers23.4.1Class template mapY23.4.2Class template multimapY23.4.3Class template setY23.4.4Class template multisetY23.5Unordered associative containers23.5.1Class template unordered_mapY23.5.2Class template unordered_multimapY23.5.3Class template unordered_setY23.5.4Class template unordered_multisetY24Iterators24.1GeneralY24.2Iterator requirementsY24.3Header <iterator> synopsisY24.4Iterator primitivesY24.5Iterator adaptors24.5.1Reverse iteratorsY24.5.2Insert iteratorsY24.5.3Move iteratorsY24.6Stream iterators24.6.1Class template istream_iteratorY24.6.2Class template ostream_iteratorY24.6.3Class template istreambuf_iteratorY24.6.4Class template ostreambuf_iteratorY24.6.5range accessN25Algorithms25.1General25.2Non-modifying sequence operationsY25.3Mutating sequence operationsY25.4Sorting and related operationsY25.5C library algorithmsY26Numerics26.1GeneralY26.2Numeric type requirementsY26.3The floating-point environmentY26.4Complex numbersPartialMissing constexpr26.5Random number generation26.5.1Requirements26.5.2Header <random> synopsis26.5.3Random number engine class templates26.5.3.1Class template linear_congruential_engineYMissing constexpr26.5.3.2Class template mersenne_twister_engineYMissing constexpr26.5.3.3Class template subtract_with_carry_engineYMissing constexpr26.5.4Random number engine adaptor class templates26.5.4.1Class template discard_block_engineYMissing constexpr26.5.4.2Class template independent_bits_engineYMissing constexpr26.5.4.3Class template shuffle_order_engineYMissing constexpr26.5.5Engines and engine adaptors with predefined parametersY26.5.6Class random_deviceYMissing constexpr26.5.7Utilities26.5.7.1Class seed_seqY26.5.7.2Function template generate_canonicalY26.5.8Random number distribution class templates26.5.8.1Uniform distributions26.5.8.1.1Class template uniform_int_distributionY26.5.8.1.2Class template uniform_real_distributionY26.5.8.2Bernoulli distributions26.5.8.2.1Class bernoulli_distributionY26.5.8.2.2Class template binomial_distributionY26.5.8.2.3Class template geometric_distributionY26.5.8.2.4Class template negative_binomial_distributionY26.5.8.3Poisson distributions26.5.8.3.1Class template poisson_distributionY26.5.8.3.2Class template exponential_distributionY26.5.8.3.3Class template gamma_distributionY26.5.8.3.4Class template weibull_distributionY26.5.8.3.5Class template extreme_value_distributionY26.5.8.4Normal distributions26.5.8.4.1Class template normal_distributionY26.5.8.4.2Class template lognormal_distributionY26.5.8.4.3Class template chi_squared_distributionY26.5.8.4.4Class template cauchy_distributionY26.5.8.4.5Class template fisher_f_distributionY26.5.8.4.6Class template student_t_distributionY26.5.8.5Sampling distributions26.5.8.5.1Class template discrete_distributionY26.5.8.5.2Class template piecewise_constant_distributionY26.5.8.5.3Class template piecewise_linear_distributionY26.6Numeric arrays26.6.1Header <valarray> synopsisY26.6.2Class template valarrayY26.6.3valarray non-member operationsY26.6.4Class sliceY26.6.5Class template slice_arrayY26.6.6The gslice classY26.6.7Class template gslice_arrayY26.6.8Class template mask_arrayY26.6.9Class template indirect_arrayY26.6.10valarray range accessN26.7Generalized numeric operations26.7.1accumulateY26.7.2inner_productY26.7.3partial_sumY26.7.4adjacent_differenceY26.7.5iotaY26.8C LibraryY27Input/output library27.1GeneralY27.2Iostreams requirementsY27.2.1Imbue LimitationsY27.2.2Positioning Type LimitationsY27.2.3Thread safetyPartial27.3Forward declarationsY27.4Standard iostream objectsY27.4.1Narrow stream objectsY27.4.2Wide stream objectsY27.5Iostreams base classesPartialMissing move and swap operations27.6Stream buffersY27.7Formatting and manipulatorsPartialMissing move and swap operations27.8String-based streamsPartialMissing move and swap operations27.9File-based streamsPartialMissing move and swap operations28Regular expressions28.1GeneralN28.2DefinitionsN28.3RequirementsN28.4Header <regex> synopsisN28.5Namespace std::regex_constantsY28.6Class regex_errorY28.7Class template regex_traitsPartial28.8Class template basic_regexPartial28.9Class template sub_matchPartial28.10Class template match_resultsPartial28.11Regular expression algorithmsN28.12Regular expression IteratorsN28.13Modified ECMAScript regular expression grammarN29Atomic operations29.1GeneralY29.2Header <atomic> synopsisY29.3Order and consistencyN29.4Lock-free propertyYBased on _GLIBCXX_ATOMIC_PROPERTY29.5Atomic types29.5.1Integral typesYMissing constexpr29.5.2Address typesYMissing constexpr29.5.3Generic typesYMissing constexpr29.6Operations on atomic typesY29.7Flag Type and operationsY29.8FencesN30Thread support30.1GeneralY30.2RequirementsY30.3Threads30.3.1Class threadPartialthread::id is not trivially copyable30.3.2Namespace this_threadY30.4Mutual exclusion30.4.1Mutex requirements30.4.1.1Class mutexY30.4.1.2Class recursive_mutexY30.4.2Timed mutex requirements30.4.2.1Class timed_mutexY30.4.2.2Class recursive_timed_mutexY30.4.3Locks30.4.3.1Class template lock_guardY30.4.3.2Class template unique_lockY30.4.4Generic locking algorithmsY30.4.5Call once30.4.5.1once_flagY30.4.5.2call_onceY30.5Condition variablesPartialMissing notify_all_at_thread_exit30.5.1Class condition_variableY30.5.2Class condition_variable_anyY30.6Futures30.6.1Overview30.6.2Error handlingY30.6.3Class future_errorY30.6.4Associated asynchronous stateY30.6.5Class template promisePartialMissing set_*_at_thread_exit30.6.6Class template futurePartialMissing future_status and future::share()30.6.7Class template shared_futurePartialMissing future_status30.6.9Function template asyncY30.6.10Class template packaged_taskPartialMissing make_ready_at_thread_exitAppendix DCompatibility featuresD.1Increment operator with bool operandD.2static keywordD.3Access declarationsD.4register keywordD.5Dynamic exception specificationsD.6C standard library headersD.7Old iostreams membersD.8char* streamsD.9BindersD.10auto_ptr