Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      Experimental C++ Features

      From cppreference.com
      <cpp
       
       
      Experimental
       

      The C++ standards committee publishes experimental C++ language and library extensions for future standardization.

      Note: until 2012, these publications used theTR (technical report) format. Since 2012 ISO procedure changed to use theTS (technical specification) format.

      Contents

      [edit]TR/TS specifications

      ISO numberNameStatusLinks, headers
      ISO/IEC TR 18015:2006Technical Report on C++ PerformancePublished 2006 (ISO store).

      Draft:TR18015 (2006-02-15).

      ISO/IEC TR 19768:2007Technical Report on C++ Library ExtensionsPublished 2007-11-15 (ISO store).

      Draft:N1836 (2005-06-24)
      ISO 29124 split off, the rest merged into C++11.

      ISO/IEC 29124:2010Extensions to the C++ Library to support mathematical special functionsPublished 2010-09-03 (ISO Store).

      Final draft:N3060 (2010-03-06).
      Merged into C++17.

      Special functions (experimental),Special functions
      ISO/IEC TR 24733:2011Extensions for the programming language C++ to support decimal floating-point arithmeticPublished 2011-10-25 (ISO Store)

      Draft:N2849 (2009-03-06).
      May be superseded by a future TS or merged into a future revision of C++ (most recent merge proposal wasN3871).

      ISO/IEC TS 18822:2015C++ File System Technical SpecificationPublished 2015-06-18 (ISO store). Final draft:N4100 (2014-07-04).

      Merged into C++17.

      Filesystem (experimental),Filesystem,<filesystem>
      ISO/IEC TS 19570:2015C++ Extensions for ParallelismPublished 2015-06-24. (ISO Store). Final draft:N4507 (2015-05-05).

      Merged into C++17.

      Parallelism
      ISO/IEC TS 19841:2015Transactional Memory TSPublished 2015-09-16, (ISO Store). Final draft:N4514 (2015-05-08).Transactional memory
      ISO/IEC TS 19568:2015C++ Extensions for Library FundamentalsPublished 2015-09-30, (ISO Store). Final draft:N4480 (2015-04-07).

      Merged into C++17 except for invocation traits.

      Library extensions
      ISO/IEC TS 19217:2015C++ Extensions for ConceptsPublished 2015-11-13 (ISO Store). Final draft:N4553 (2015-10-02). Current draft:P0734R0 (2017-07-14).

      Merged into C++20 (with modifications).

      Constraints and concepts (experimental),Concepts,<concepts>
      ISO/IEC TS 19571:2016C++ Extensions for ConcurrencyPublished 2016-01-19 (ISO Store). Final draft:P0159R0 (2015-10-22).

      Partially merged into C++20.

      Concurrency
      ISO/IEC TS 19568:2017C++ Extensions for Library Fundamentals, Version 2Published 2017-03-30 (ISO Store). Draft:N4617 (2016-11-28).

      Partially merged into C++17 and C++20.

      Library extensions 2
      ISO/IEC TS 21425:2017Ranges TSPublished 2017-12-05 (ISO Store). Draft:N4685 (2017-07-31).

      Merged into C++20.

      Ranges (experimental),Ranges,<ranges>
      ISO/IEC TS 22277:2017Coroutines TSPublished 2017-12-05 (ISO Store). Draft:N4736 (2018-03-31). Latest draft:N4775 (2018-10-07).

      Merged into C++20.

      <coroutine>
      ISO/IEC TS 19216:2018Networking TSPublished 2018-04-24 (ISO Store). Draft:N4734 (2017-04-04). Latest draft:N4771 (2018-10-08).
      See also non-TS proposals
      • Standard Secure Networking -P2586R0 (2022-09-13)
      • Sender-Receiver Interface For Networking -P2762R2 (2023-10-12)
      • A proposed direction for C++ Standard Networking based onIETF TAPS -P3185R0 (2024-12-14)
      • Proposed API for creating TAPS based networking connections -P3482R0 (2024-12-14)
      Networking
      ISO/IEC TS 21544:2018Modules TSPublished 2018-05-16 (ISO Store). Final Draft:N4720 (2018-01-29).

      Merged into C++20.

      ISO/IEC TS 19570:2018Parallelism TS Version 2Published 2018-11-15 (ISO Store). Final draft:N4793 (2018-11-26). Post-publication draft:N4808 (2019-03-11). See also non-TSstd::simd proposalsbelow.Parallelism 2
      ISO/IEC TS 23619:2021Reflection TSPublished 2021-10-11 (ISO store). Draft:N4856 (2020-03-02). See also non-TS proposalsbelow.Reflection
      NumericsEarly development. Draft:P1889R1 (2019-12-27).
      ISO/IEC TS 9922Concurrency TS Version 2Published 2024-10-09 (ISO Store). Draft:N4956 (2023-07-05).Concurrency 2
      ISO/IEC TS 19568:2024C++ Extensions for Library Fundamentals, Version 3Published 2024-08-26 (ISO Store). Draft:N4948 (2023-05-08).Library extensions 3
      ISO/IEC DTS 12907Transactional Memory TS, Version 2Early development. Draft:N4923 (2022-10-14).
      ISO/IEC NP 19569Array Extensions TS× Withdrawn. Abandoned draft:N3820 (2013-10-10).

      [edit]Non-TS proposals

      NameStatusLinks, Headers
      Linear AlgebraMerged into C++26. Proposal:P1673R13 (2023-11-10).
      More proposals:
      • A proposal to add linear algebra support to the C++ standard library -P1385R7 (2022-10-15)
      • Evolving a Standard C++ Linear Algebra Library from theBLAS -P1674R2 (2022-05-15)
      • Presentation ofP1385R7 to LEWG at Issaquah 2023 -P2802R0 (2023-02-09)
      • Fix C++26 by optimizinglinalg::conjugated for non-complex value types -P3050R3 (2024-10-29)
      • Fix C++26 by making thesymmetric andHermitian rank-k and rank-2k updates consistent with theBLAS -P3371R4 (2025-04-07)
      <linalg>
      std::executionMerged into C++26. Proposal:P2300R10 (2024-06-28).
      More proposals:
      • System execution context -P2079R8 (2025-05-18)
      • Sender-Receiver Interface for Networking -P2762R2 (2023-10-12)
      • Member customization points for Senders and Receivers -P2855R1 (2024-02-22)
      • An Event Model for C++ Executors -P2882R0 (2023-05-11)
      • Sender Algorithm Customization -P2999R3 (2023-12-13)
      • std::execution introduction -P3090R0 (2024-02-14)
      • A plan forstd::execution for C++26 -P3109R0 (2024-02-12)
      • Improving diagnostics for Sender expressions -P3164R4 (2025-04-28)
      • Reconsidering thestd::execution::on algorithm -P3175R3 (2024-06-25)
      • A sender query for completion behaviour -P3206R0 (2025-01-13)
      • finally,write_env, andunstoppable Sender Adaptors -P3284R4 (2025-05-16)
      • Fixing Lazy Sender Algorithm Customization -P3303R1 (2024-06-25)
      • A Utility for Creating Execution Environments -P3325R5 (2024-11-22)
      • When Do You Knowconnect Doesn't Throw? -P3388R2 (2025-04-01)
      • std::execution wording fixes -P3396R1 (2024-11-19)
      • Enabling more efficient stop-token based cancellation of senders -P3409R1 (2024-11-17)
      • system_scheduler on Win32, Darwin and Linux -P3456R0 (2024-10-15)
      • Summarizingstd::execution::bulk() issues -P3481R3 (2025-04-16)
      • High-Quality Sender Diagnostics with Constexpr Exceptions -P3557R2 (2025-05-16)
      • optional variants in sender-receiver -P3570R1 (2025-05-19)
      • Non-Blocking Support forstd::execution -P3669R1 (2025-05-17)
      • Removestd::execution::split -P3682R0 (2025-05-06)
      • Renameasync_scope_token -P3685R0 (2025-05-07)
      • Renamejoin andnest inasync_scope proposal -P3706R0 (2025-05-19)
      Execution (experimental),
      Execution,
      <execution>
      std::inplace_vectorMerged into C++26. Proposal:P0843R14 (2024-06-26).
      More proposals:
      • inplace_vector -P0843(R7) LEWG presentation -P2925R0 (2023-06-16)
      • A direction for Vector -P3147R1 (2024-03-18)
      • An allocator-awarestd::inplace_vector -P3160R2 (2024-10-15)
      • No, inplace_vector shouldn't have an Allocator -P3581R0 (2025-01-13)
      • LEWG Hagenberg presentation forP3581. No, inplace_vector shouldn't have an Allocator -P3636R0 (2025-02-13)
      • Cross-capacity comparisons forstd::inplace_vector -P3698R0 (2025-05-19)
      <inplace_vector>
      experimental::simd
      std::datapar::simd
      Merged into C++26. Proposal:P1928R15 (2024-11-22).
      The main document (TS ISO/IEC 19570:2018) is described in"C++ Extensions for Parallelism V2" above.
      More proposals:
      Data parallel types (experimental),
      Data parallel types,
      <simd>
      ContractsMerged into C++26. Proposal: Contracts for C++ -P2900R14 (2025-02-13)
      More proposals:
      • A Proposal to Publish a Technical Specification for Contracts -P2659R2 (2022-11-30)
      • Proposed Contracts TS -P2660R0 (2022-10-14)
      • Miscellaneous amendments to the Contracts TS -P2661R0 (2022-10-15)
      • Contracts for C++: Prioritizing Safety -P2680R1 (2022-12-15)
      • A proposed plan for contracts in C++ -P2695R1 (2023-02-09)
      • Proposal of Condition-centric Contracts Syntax -P2737R0 (2022-12-30)
      • Contracts for C++: Prioritizing Safety - Presentation slides -P2743R0 (2022-12-13)
      • Evaluation of Checked Contracts -P2751R1 (2023-02-14)
      • A Bold Plan for a Complete Contracts Facility -P2755R1 (2024-04-11)
      • The idea behind the contracts MVP -P2817R0 (2023-03-05)
      • Proposal of Contracts Supporting Const-On-Definition Style -P2829R0 (2023-04-13)
      • Contract violation handling semantics for the contracts MVP -P2852R0 (2023-04-24)
      • The Lakos Rule: Narrow Contracts andnoexcept Are Inherently Incompatible -P2861R0 (2023-05-19)
      • Requirements for a Contracts syntax -P2885R3 (2023-10-05)
      • Contracts on lambdas -P2890R2 (2023-12-13)
      • Constant evaluation of Contracts -P2894R2 (2024-01-11)
      • Outstanding design questions for the Contracts MVP -P2896R0 (2023-08-22)
      • Contracts for C++ - Rationale -P2899R1 (2025-03-14)
      • A Principled Approach to Open Design Questions for Contracts -P2932R3 (2024-01-16)
      • An Attribute-Like Syntax for Contracts -P2935R4 (2023-11-05)
      • Contracts must avoid disclosing sensitive information -P2947R0 (2023-07-20)
      • Slides forP2861R0: Narrow Contracts andnoexcept are Inherently Incompatible -P2949R0 (2023-07-14)
      • Contracts and virtual functions for the Contracts MVP -P2954R0 (2023-08-03)
      • Contracts and coroutines -P2957R2 (2024-10-14)
      • A natural syntax for Contracts -P2961R2 (2023-11-08)
      • An Overview of Syntax Choices for Contracts -P3028R0 (2023-11-05)
      • Protection against modifications in contracts -P3071R1 (2023-12-17)
      • Removeevaluation_undefined_behavior andwill_continue from the Contracts MVP -P3073R0 (2024-01-27)
      • Shouldignore andobserve exist for constant evaluation of contracts? -P3079R0 (2024-01-11)
      • Contracts for C++: Support for virtual functions -P3097R0 (2024-04-15)
      • Contracts for C++: Postcondition captures -P3098R1 (2024-12-11)
      • Undefined and erroneous behavior are contract violations -P3100R2 (2025-05-19)
      • Tokyo Technical Fixes to Contracts -P3119R1 (2024-05-09)
      • Contracts on virtual functions for the Contracts MVP -P3165R0 (2024-02-27)
      • Inherited contracts -P3169R0 (2024-04-14)
      • Contract testing support -P3183R1 (2024-05-22)
      • Slides for LEWG presentation ofP2900R6: Contracts for C++ -P3189R0 (2024-03-19)
      • Slides for LEWG presentation ofP2900R7: Contracts for C++ -P3190R0 (2024-03-20)
      • A response to the Tokyo EWG polls on the Contracts MVP (P2900R6) -P3197R0 (2024-04-12)
      • A takeaway from the Tokyo LEWG meeting on Contracts MVP -P3198R0 (2024-03-29)
      • Why Contracts? -P3204R0 (2024-11-07)
      • The contract ofsort() -P3212R0 (2024-07-03)
      • Contracts for C++: Naming theLouis semantic -P3226R0 (2024-04-12)
      • Contracts for C++: Fixing the contract violation handling API -P3227R1 (2024-10-24)
      • Contracts for C++: Revisiting contract check elision and duplication -P3228R1 (2024-05-21)
      • Making erroneous behaviour compatible with Contracts -P3229R1 (2025-02-10)
      • An alternate proposal for naming contract semantics -P3238R0 (2024-05-06)
      • A unified syntax for Pattern Matching and Contracts when introducing a new name -P3249R0 (2024-05-22)
      • C++ contracts with regards to function pointers -P3250R0 (2024-05-07)
      • C++ contracts and coroutines -P3251R0 (2024-05-07)
      • Make the predicate ofcontract_assert more regular -P3257R0 (2024-04-26)
      • Ship Contracts in a TS -P3265R3 (2024-05-28)
      • Approaches to C++ Contracts -P3267R1 (2024-05-22)
      • C++ Contracts Constification Challenges Concerning Current Code -P3268R0 (2024-05-07)
      • Do Not Ship Contracts as a TS -P3269R0 (2024-05-21)
      • Repetition, Elision, and Constification w.r.t.contract_assert -P3270R0 (2024-05-22)
      • Function Usage Types (Contracts for Function Pointers) -P3271R1 (2024-10-15)
      • P2900 Is Superior to a Contracts TS -P3276R0 (2024-05-18)
      • Contracts: Protecting The Protector -P3285R0 (2024-05-15)
      • Integrating Existing Assertions With Contracts -P3290R2 (2024-09-06)
      • C++26 Needs Contract Checking -P3297R1 (2024-06-21)
      • An opt-in approach for integration of traditional assert facilities in C++ contracts -P3311R0 (2024-05-22)
      • Compile time resolved contracts -P3317R0 (2024-05-22)
      • Contracts Interaction With Tooling -P3321R0 (2024-07-12)
      • Contract assertions on function pointers -P3327R0 (2024-10-16)
      • Observable Checkpoints During Contract Evaluation -P3328R0 (2024-06-14)
      • Usage Experience for Contracts with BDE -P3336R0 (2024-06-23)
      • Contracts - What are we doing here (EWG Presentation) -P3343R0 (2024-06-25)
      • Virtual Functions on Contracts (EWG - Presentation forP3097) -P3344R0 (2024-06-28)
      • Class invariants and contract checking philosophy -P3361R1 (2024-07-23)
      • Static analysis and “safety” of Contracts,P2900 vsP2680/P3285 -P3362R0 (2024-08-13)
      • Contract assertions versus static analysis and “safety” -P3376R0 (2024-10-14)
      • Static Analysis of Contracts with P2900 -P3386R1 (2024-11-25)
      • Contract assertions on coroutines -P3387R0 (2024-10-09)
      • Specifying Contract Assertion Properties with Labels -P3400R1 (2025-02-28)
      • Improving the handling of exceptions thrown from contract predicates -P3417R1 (2025-03-05)
      • Contracts Implementors Report -P3460R0 (2024-10-16)
      • Standard library hardening -P3471R4 (2025-02-14)
      • Constification should not be part of the MVP (MinimalViableProduct) -P3478R0 (2024-10-16)
      • Exploring strict contract predicates -P3499R1 (2025-02-09)
      • Are Contracts 'safe'? -P3500R1 (2025-02-09)
      • Slides forP2900R11 - Contracts for C++ -P3502R0 (2024-11-18)
      • P2900 Is Still not Ready for C++26 -P3506R0 (2025-01-13)
      • Violation handlers vsnoexcept -P3541R1 (2025-01-07)
      • Core Language Contracts By Default -P3558R1 (2025-02-03)
      • Contract concerns -P3573R0 (2025-01-12)
      • Require a non-throwing default contract-violation handler -P3577R0 (2025-01-12)
      • Observed a contract violation? Skip subsequent assertions! -P3582R0 (2025-01-13)
      • Contracts, Types & Functions -P3583R0 (2025-01-13)
      • Contextualizing Contracts Concerns -P3591R0 (2025-02-03)
      • Initial Implicit Contract Assertions -P3599R0 (2025-02-03)
      • Contracts and profiles: what can we reasonably ship in C++26 -P3608R0 (2025-02-01)
      • Remove contracts on virtual functions for now -P3616R0 (2025-02-08)
      • Make contracts reliable by default -P3640R0 (2025-03-17)
      • Minor additions to C++26 standard library hardening -P3697R0 (2025-05-16)
      Contract assertions,
      function contract specifiers,
      contract_assert,
      pre,post,
      <contracts>
      ReflectionThe main document (ISO/IEC TS 23619:2021) is described inReflection TS above.
      More proposals:
      • Scalable Reflection in C++ -P1240R2 (2022-01-14)
      • Expansion statements -P1306R4 (2025-05-17)
      • Reflection on attributes -P1887R1 (2020-01-13)
      • Metaprogramming -P2237R0 (2020-10-15)
      • Python Bindings with Value-Based Reflection -P2911R1 (2023-10-13)
      • Reflection for C++26 -P2996R12 (2025-05-17)
      • Using Reflection to Replace a Metalanguage for Generating JS Bindings -P3010R0 (2023-10-13)
      • ABI comparison with reflection -P3095R0 (2024-02-15)
      • Function Parameter Reflection in Reflection for C++26 -P3096R9 (2025-05-15)
      • Generative Extensions for Reflection -P3157R1 (2024-05-22)
      • Syntax for Reflection -P3381R0 (2024-09-17)
      • Attributes reflection -P3385R5 (2025-05-19)
      • Annotations for Reflection -P3394R3 (2025-05-17)
      • Reflection Syntax Options Summary -P3419R0 (2024-10-11)
      • Reflection of Templates -P3420R1 (2025-01-13)
      • Reflection header should minimize standard library dependencies -P3429R1 (2024-11-29)
      • Reflection and meta-programming -P3435R0 (2024-10-14)
      • Proposed default principles: Reflect C++, Generate C++ -P3437R1 (2024-11-07)
      • Reflection on SG21 2024 Process -P3443R0 (2024-10-14)
      • A Suggestion for Reflection Access Control -P3451R0 (2024-10-15)
      • Ruminations on reflection and access -P3493R0 (2024-11-10)
      • Modeling Access Control With Reflection -P3547R1 (2025-02-09)
      • Error Handling in Reflection -P3560R1 (2025-05-19)
      • Split define_aggregate from Reflection -P3569R0 (2025-01-11)
      • Reconsider reflection access for C++26 -P3587R0 (2025-01-13)
      • Do not remove nor postponeaccess_context::unchecked -P3614R0 (2025-02-06)
      • std::meta::reflect_constant_{array,string} -P3617R0 (2025-05-16)
      • Inheritstd::meta::exception fromstd::exception -P3637R0 (2025-03-08)
      • Final Adjustments to C++26 Reflection -P3687R0 (2025-05-15)
      Reflection (experimental)
      Pattern MatchingEarly development. DraftP1371R3 (2020-09-15).
      More proposals:
      • Pattern Matching usingis andas -P2392R3 (2024-10-16)
      • Pattern Matching:match expression -P2688R5 (2025-01-13)
      • switch for Pattern Matching -P2940R0 (2022-04-18)
      • Identifiers for Pattern Matching -P2941R0 (2022-02-24)
      • A Postconditionis a Pattern Match -P3210R2 (2024-09-10)
      • A unified syntax for Pattern Matching and Contracts when introducing a new name -P3249R0 (2024-05-22)
      • A simpler notation for PM -P3332R0 (2024-06-18)
      • Slides for P2688R2 - Pattern Matching:match Expression -P3476R0 (2024-10-16)
      • Pattern Matching: Customization Point for Open Sum Types -P3521R0 (2024-12-17)
      • Pattern Matching: *variant-like* and 'std::expected' -P3527R1 (2025-01-13)
      • Pattern matching -P3572R0 (2025-01-12)
      ProfilesEarly development.
      More proposals:
      • Safety Profiles: Type-and-resource Safe programming in ISO Standard C+ -P2816R0 (2023-02-16)
      • Concrete suggestions for initial Profiles -P3038R0 (2023-12-16)
      • Core safety Profiles: Specification, adoptability, and impact -P3081R2 (2025-02-03)
      • A framework for Profiles development -P3274R0 (2024-05-10)
      • A Safety Profile Verifying Class Initialization -P3402R3 (2025-05-17)
      • Profile invalidation - eliminating dangling pointers -P3446R0 (2024-10-14)
      • Profiles syntax -P3447R0 (2024-10-14)
      • Response to Core Safety Profiles (P3081R0) -P3543R0 (2024-12-17)
      • The Plethora of Problems With Profiles -P3586R0 (2025-01-13)
      • C++ Profiles: The Framework -P3589R2 (2025-05-19)
      • Contracts and profiles: what can we reasonably ship in C++26 -P3608R0 (2025-02-01)
      • Dealing with pointer errors: Separating static and dynamic checking -P3611R0 (2025-02-04)
      • Easy-to-adopt security profiles for preventing RCE (remote code execution) in existing C++ code -P3627R0 (2025-02-11)
      • A principled approach to safety profiles -P3649R0 (2025-05-19)
      • 21st Century C++ -P3650R0 (2025-03-05)
      • Note to the C++ standards committee members -P3651R0 (2025-03-06)
      • Making Safe C++ happen -P3700R0 (2025-05-19)
      • What are profiles? -P3704R0 (2025-05-19)
      StatisticsEarly development.
      More proposals:
      Graph LibraryEarly development.
      More proposals:
      • Graph Library: Overview -P3126R3 (2025-04-13)
      • Graph Library: Algorithms -P3128R3 (2025-04-13)
      • Graph Library: Graph Container Interface -P3130R3 (2025-04-13)
      • Graph Library: Graph Containers -P3131R3 (2025-04-13)
      2D GraphicsEarly development. DraftP0267R10 (2019-10-07).

      [edit]See also

      C documentation forExperimental C features

      [edit]External links

      1. PL22.16/WG21 document list - All C++ committee documents (TS/proposals) for 2016-2025.
      2. JTC1/SC22/WG21 Proposals (mailing) for 2025.
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/experimental&oldid=183366"

      [8]ページ先頭

      ©2009-2025 Movatter.jp