Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      Compiler support for C++23

      From cppreference.com
      <cpp‎ |compiler support
       
       
       

      * - hover over a cell marked with the star* to see additional pop-up notes.
      DRnn - the numbernn after "DR" denotes target C++ revision the Defect Report is applied to, e.g., DR20 → C++20.

      [edit]C++23 core language features

      C++23 feature

       
      Paper(s)

       
      GCC
      Clang
      MSVC
      Apple Clang
      EDG eccp
      Intel C++
      Nvidia HPC C++ (ex PGI)*
      Nvidia nvcc
      Cray
      Literal suffix for (signed)size_t  (FTM)*P0330R8111319.43*13.1.6*6.52022.223.9
      Make() more optional forlambdasP1102R2111319.44*13.1.6*6.32022.222.5
      if consteval  (FTM)*P1938R3121419.44*14.0.0*6.32022.224.1
      Removing Garbage Collection SupportP2186R212N/A19.30*N/AN/A
      Narrowing contextual conversions instatic_assert andconstexpr ifP1401R5913 (partial)*
      14
      14.0.0*2022.220.7
      Trimming whitespaces before line splicingP2223R2YesYesYes6.72022.2Yes
      Make declaration order layout mandatedP1847R4YesYesYesYes2022.2Yes
      Removing mixed wide string literalconcatenationP2201R1YesYesYesYesYesYesYes
      Explicit object member functions (deducingthis)  (FTM)*P0847R71418
      19*
      19.32*
      (partial)*
      19.43*
      6.322.5
      auto(x) andauto{x}  (FTM)*P0849R8121514.0.3*6.42022.223.3
      #elifdef and#elifndefP2334R1121319.40*13.1.6*6.52022.223.9
      Non-literal variables (and labels and gotos) inconstexpr functions  (FTM)*P2242R3121519.43*14.0.3*6.32022.222.5
      Consistent character literal encodingP2316R2YesYes19.30*YesYes2022.2Yes
      Character sets and encodingsP2314R410YesYesYes2022.2Yes
      Extend init-statement (offor loop) to allowalias-declarationP2360R0121414.0.0*2022.2
      Multidimensionalsubscript operator  (FTM)*P2128R6121519.42*14.0.3*2022.2
      Attributes onlambdasP2173R191319.44*13.1.6*6.62022.222.5
      #warningP2437R1Yes*Yes15.0.0*6.52023.2Yes
      Remove non-encodable wide character literals and multicharacter wide character literalsP2362R3131415.0.0*6.72023.2
      Labels at the end of compound statementsP2324R2131616.0.0*6.52023.223.9
      Delimited escape sequencesP2290R3131515.0.0*6.72023.2
      Named universal character escapes  (FTM)*P2071R2131515.0.0*6.72023.2
      Relaxing someconstexpr restrictions  (FTM)*P2448R21317 (partial)
      19
      2024.0 (partial)
      Simpler implicit move  (FTM)*P2266R313136.72022.2
      static operator()  (FTM)*P1169R4131619.44*16.0.0*6.72023.2
      Requirements for optionalextended floating-point typesP1467R913N/A6.4
      Class template argument deduction from inherited constructorsP2582R114
      Attribute[[assume]]P1774R81319
      Support forUTF-8 as a portable source file encodingP2295R613*15*19.0 (Update 2)**15.0.0*2023.2
      static operator[]  (FTM)*P2589R1131619.44*16.0.0*6.72023.2
      Permittingstaticconstexpr variables inconstexpr functions  (FTM)*P2647R1131616.0.0*2023.2
      Extending the lifetime of temporaries in range-based for loop initializer  (FTM)*P2644R1
      P2718R0
      CWG2659
      1519
      Declarations and where to find themP1787R6
      DR11: Change scope oflambda trailing-return-typeP2036R3
      P2579R0
      172023.2
      DR20: Meaningful exportsP2615R11517 (partial)
      DR20:consteval needs to propagate up  (FTM)*P2564R3141716.0.0*6.72024.0
      DR98: C++ Identifier Syntax using Unicode Standard Annex 31P1949R7121414.0.0*6.42022.2
      DR11: Allow duplicateattributesP2156R1111313.1.6*6.523.9
      DR20: Adjusting the value of feature-test macro__cpp_conceptsP2493R01219.32*6.423.3
      DR98:Relax requirements onwchar_t to match existing practicesP2460R2YesYesYes15.0.0*N/A2023.2
      DR11: Using unknown pointers and references in constant expressionsP2280R41420*
      DR20: The Equality Operator You Are Looking ForP2468R2131616.0.0*2023.2
      DR20:char8_t Compatibility and Portability Fix  (FTM)*P2513R4131619.34*16.0.0*2023.2
      DR98/11: Clarify reporting ofdiagnostic directives and allowstatic_assert of non-value-dependent expressions in a template contextCWG2518131716.0*
      (partial)*
      19.40*
       

      C++23 feature
       

      Paper(s)
      GCC
      Clang
      MSVC
      Apple Clang
      EDG eccp
      Intel C++
      Nvidia HPC C++ (ex PGI)*
      Nvidia nvcc
      Cray

      [edit]C++23 library features

      C++23 feature

       
      Paper(s)

       
      GCC libstdc++
      Clang libc++
      MSVC STL
      Apple Clang*
      Stacktrace library  (FTM)*P0881R7
      P2301R1
      12 (partial)*
      14*
      19.34*
      <stdatomic.h>  (FTM)*P0943R6121519.31*14.0.3*
      std::is_scoped_enum  (FTM)*P1048R1111219.30*13.0.0*
      std::basic_string::contains(),std::basic_string_view::contains()  (FTM)*P1679R3111219.30*13.0.0*
      std::to_underlying  (FTM)*P1682R3111319.30*13.1.6*
      Relaxing requirements fortime_point<>::clockP2212R2N/AN/AN/AN/A
      Providing size feedback in the Allocator interface  (FTM)*P0401R61519.30*14.0.3*
      <spanstream>: string-stream withstd::span-based buffer  (FTM)*P0448R41219.31*
      std::out_ptr(),std::inout_ptr()  (FTM)*P1132R8141919.30*
      constexprtype_info::operator==()  (FTM)*P1328R1121719.33**
      19.34*
      15.0.0*
      Iterator pair constructors forstd::stack andstd::queue  (FTM)*P1425R4121419.31*14.0.3*
      Non-deduction context for allocators in container deduction guidesP1518R212*13*19.31**13.1.6**
      ranges::starts_with() andranges::ends_with()  (FTM)*P1659R317 (partial)*
      18
      19.31*16.0.0*
      Prohibitingstd::basic_string andstd::basic_string_view construction fromnullptrP2166R1121319.30*13.1.6*
      std::invoke_r()  (FTM)*P2136R3121719.31*15.0.0*
      Rangeconstructor forstd::basic_string_viewP1989R2111419.30*14.0.3*
      Default template arguments forstd::pair's forwardingconstructorP1951R1141419.30*14.0.3*
      Remove Garbage Collection and Reachability-Based Leak Detection (library support)P2186R2121419.30*14.0.3*
      zip:views::zip,views::zip_transform,views::adjacent, andviews::adjacent_transform  (FTM)*P2321R21315 (partial)*19.33*(partial)***
      19.37*
      14.0.3*
      Heterogeneous erasure overloads for associative containers  (FTM)*P2077R319.32*
      std::byteswap()  (FTM)*P1272R4121419.31*14.0.3*
      Printingvolatile T*P1147R111.31419.31*14.0.3*
      basic_string::resize_and_overwrite()  (FTM)*P1072R10121419.31*14.0.3*
      Monadic operations forstd::optional  (FTM)*P0798R8121419.32*14.0.3*
      std::move_only_function  (FTM)*P0288R91219.32*
      Add a conditional noexcept specification tostd::exchangeP2401R0121419.25*14.0.3*
      Requirestd::span &std::basic_string_view to beTriviallyCopyableP2251R1YesYesYesYes
      Clarifying the status of the “C headers”P2340R1YesYesYesYes
      <expected>  (FTM)*P0323R12
      P2549R1
      121619.33*15.0.0*
      constexpr for<cmath> and<cstdlib>  (FTM)*P0533R94.6 (partial)*
      std::unreachable()  (FTM)*P0627R6121519.32*14.0.3*
      Deprecatingstd::aligned_storage andstd::aligned_unionP1413R3131619.33*
      std::reference_constructs_from_temporary &std::reference_converts_from_temporary  (FTM)*P2255R213 (partial)*
      14
      21 (partial)*
      constexprstd::unique_ptr  (FTM)*P2273R3121619.33*15.0.0*
      Constructing containers and strings from ranges withranges::to(), tagged constructors, insert and assign member functions  (FTM)*  (FTM)*P1206R714 (partial)*
      15
      1719.34*15.0.0*
      Pipe support for user-defined range adaptors (ranges::range_adaptor_closure,std::bind_back)  (FTM)*  (FTM)*P2387R313 (partial)*
      14
      1919.34*
      ranges::iota(),ranges::shift_left(), andranges::shift_right()  (FTM)*  (FTM)*P2440R113 (partial)*19.34*
      views::join_with  (FTM)*P2441R21319.34*
      views::chunk andviews::slide  (FTM)*  (FTM)*P2442R11319.33*
      views::chunk_by  (FTM)*P2443R1131819.33*16.0.0*
      std::mdspan: a non-owning multidimensional array reference  (FTM)*P0009R18
      P2599R2
      P2604R0
      P2613R1
      P2763R1
      17 (partial)*
      18
      19.39*15.0.0*
      <flat_map>  (FTM)*P0429R91520
      <flat_set>  (FTM)*P1222R41521
      ranges::find_last(),ranges::find_last_if(), andranges::find_last_if_not()  (FTM)*P1223R5131919.36*
      Freestanding Library: Easy<utility>,<ranges>, and<iterator>P1642R1113*N/A
      views::stride  (FTM)*P1899R31319.34*
      Compatibility betweenstd::tuple and tuple-like objects  (FTM)*P2165R4142.9 (partial)*19.36* (partial)*
      19.37*
      partial*
      Rectifying constant iterators, sentinels, and ranges.views::as_const  (FTM)*P2278R41319.35*(partial)*
      19.36*
      Formatting Ranges  (FTM)*P2286R815 (partial)*
      15.2
      1619.37*(partial)*
      19.39*(partial)*
      19.41*(partial)*
      19.42*
      15.0.0*
      Improve default containerformatting  (FTM)*P2585R11516 (partial)*
      17
      19.42*15.0.0*
      Formatted output library<print>  (FTM)*P2093R14
      P2539R4
      1417 (partial)*
      18
      19.37*15.0.0**
      16.0.0*
      Formattingstd::thread::id andstd::stacktrace  (FTM)*P2693R11417 (partial)*19.38*15.0.0*
      constexpr for integral overloads ofstd::to_chars() andstd::from_chars()  (FTM)*P2291R3131619.34*15.0.0*
      ranges::contains() andranges::contains_subrange()  (FTM)*P2302R41318 (partial)*
      19
      19.34*16.0.0**
      Ranges fold algorithms  (FTM)*P2322R61319.35*
      views::cartesian_product  (FTM)*P2374R4
      P2540R1
      1319.37*
      Adding move-only types support for comparison concepts (equality_comparable,totally_ordered,three_way_comparable)  (FTM)*P2404R319.36*
      Ranges iterators as inputs to non-ranges algorithms  (FTM)*P2408R519.34*
      constexprstd::bitset  (FTM)*P2417R2131619.34*15.0.0*
      basic_string::substr()&&P2438R21619.34*15.0.0*
      views::as_rvalue  (FTM)*P2446R2131619.34*15.0.0*
      Standard Library Modules  (FTM)*P2465R315*17 (partial)*19.35*
      (partial)*
      19.36*
      std::forward_like()  (FTM)*P2445R1141619.34*15.0.0*
      Support exclusive mode forstd::fstream  (FTM)*P2467R1121819.36*16.0.0*
      views::repeat  (FTM)*P2474R2131719.36*15.0.0*
      Relaxing range adaptors to allow for move-only types  (FTM)*P2494R2141719.34*15.0.0*
      std::basic_string_view rangeconstructor should be explicitP2499R012.21619.34*15.0.0*
      std::generator: synchronous coroutine generator for ranges  (FTM)*P2502R2
      P2787R0
      1419.43*
      Add a conditional noexcept specification tostd::applyP2517R1101819.34*16.0.0*
      Explicit lifetime management (std::start_lifetime_as)  (FTM)*P2590R2
      P2679R2
      Clarify handling of encodings in localized formatting of chrono types  (FTM)*P2419R215*19.34**
      std::move_iterator should not always beinput_iterator  (FTM)*P2520R012.3*17*19.34**15.0.0*
      Deduction guides update forexplicit object parameter call operatorsLWG36171419.34*
      Deduction guides update forstatic operator()P1169R4131619.39*15.0.0*
      Standard names and library support forextended floating-point typesP1467R91319.37**
      Monadic operations forstd::expected  (FTM)*P2505R5131719.36*15.0.0*
      views::enumerate  (FTM)*P2164R91319.37*
      std::is_implicit_lifetime  (FTM)*P2674R120
      std::common_reference_t ofstd::reference_wrapper should be a reference type  (FTM)*  (FTM)*P2655R319.37*
      Disallowing user specialization ofstd::allocator_traitsP2652R21919.37*
      Deprecatingstd::numeric_limits::has_denormP2614R21819.37*16.0.0*
      Making Multi-Param Constructors OfviewsexplicitP2711R117 (partial)*19.36**15.0.0*
      DR20: Relaxing Ranges Just A Smidge  (FTM)*P2609R3152019.37*
      DR20: Stashing Stashing Iterators For Proper FlatteningP2770R0141819.37*
      DR17:std::visit() for classes derived fromstd::variant  (FTM)*P2162R211.31319.20**
      19.30*
      13.1.6*
      DR20: Conditionally borrowed rangesP2017R1111619.30*
      DR20: Repairinginput range adaptors andstd::counted_iteratorP2259R11219.30*(partial)*
      19.31*
      DR20:views::join should join all views of rangesP2328R111.21519.30*14.0.3*
      DR20:view does not requiredefault_initializable  (FTM)*P2325R311.31619.30*15.0.0*
      DR20: Range adaptor objects bind arguments by valueP2281R1111419.29 (16.10)*
      (partial)*
      19.31*
      14.0.3*
      DR20:constexpr forstd::optional andstd::variant  (FTM)*  (FTM)*P2231R111.3 (partial)*
      12
      13 (partial)*
      19
      19.31*13.1.6* (partial)
      DR20:views::lazy_split and redesignedviews::splitP2210R2121619.31*15.0.0*
      DR20: Fixranges::istream_viewP2432R1121619.31*15.0.0*
      DR20:view with ownership  (FTM)*P2415R2121419.31*14.0.3*
      DR20: Fixing locale handling in chrono formatters  (FTM)*P2372R3
      P2418R2
      1319.31*
      DR20: Cleaning up integer-class typesP2393R119.32*
      DR20: Compile-time format string checks; Reducing binary code size ofstd::format() family  (FTM)*P2216R31314 (partial)*
      15
      19.32*14.0.3*
      DR20: Add support for non-const-formattable types tostd::formatP2418R2131519.32*14.0.3*
      DR20:std::basic_format_stringP2508R1131519.35*14.0.3*
      DR20: Poison Pills are Too Toxic  (FTM)*P2602R2141919.36*
      DR20:std::format fill character allowancesP2572R1141719.37*
      DR20: Improvingstd::format's width estimationP2675R1141719.38*
      DR20:std::barrier's phase completion guarantees  (FTM)*P2588R319.28 (16.8)**
      19.36*
       

      C++23 feature
       

      Paper(s)
      GCC libstdc++
      Clang libc++
      MSVC STL
      Apple Clang*
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/compiler_support/23&oldid=169957"

      [8]ページ先頭

      ©2009-2025 Movatter.jp