이름공간
변수
행위

C++23

cppreference.com
< cpp

The next generation of the C++ standard

see: The current IS schedule for C++23

목차

[편집] New language features

[편집] New library features

[편집] Defect reports

[편집] Compiler support

[편집] C++23 핵심 언어 기능

C++23 feature
 
Paper(s)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++
(ex Portland Group/PGI)
Nvidia nvcc
Literal suffix for (signed) size_tP0330R811 13

13.1.6*

Make () more optional for lambdasP1102R211 13

13.1.6*

6.3
if constevalP1938R312 14 6.3
Removing Garbage Collection Support P2186R212
DR: C++ Identifier Syntax using Unicode Standard Annex 31 P1949R712 14 6.4
DR: Allow Duplicate Attributes P2156R111 13

13.1.6*

Narrowing contextual conversions in static_assert and constexpr ifP1401R59 13 (partial)*
14

13.1.6* (partial)

Trimming whitespaces before line splicing P2223R2Yes Yes Yes
Make declaration order layout mandated P1847R4Yes Yes Yes Yes
Removing mixed wide string literal concatenationP2201R1Yes Yes Yes Yes Yes Yes
Deducing this P0847R719.32*
(partial)*
6.3
auto(x) and auto{x} P0849R812 15
Change scope of lambda trailing-return-type P2036R315
#elifdef and #elifndefP2334R112 13

13.1.6*

Non-literal variables (and labels and gotos) in constexpr functions P2242R312 15 6.3
Consistent character literal encoding P2316R2Yes Yes Yes Yes
Character sets and encodings P2314R4Yes Yes
Extend init-statement to allow alias-declaration P2360R012 14
Multidimensional subscript operator P2128R612 15
Attributes on lambdasP2173R19 13

13.1.6*

DR: Adjusting the value of feature testing macro __cpp_concepts P2493R012
C++23 feature
 
Paper(s)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++
Nvidia nvcc

[편집] C++23 라이브러리 기능

C++23 feature
 
Paper(s)
 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang
Sun/Oracle C++
Standard Library
Embarcadero C++ Builder
Standard Library
Cray C++
Standard Library
스택추적 라이브러리P0881R7P2301R112 (partial)*
<stdatomic.h>P0943R612 15 19.31*
std::is_scoped_enumP1048R111 12 19.30*

13.0.0*

basic_string::contains(), basic_string_view::contains()P1679R311 12 19.30*

13.0.0*

std::to_underlyingP1682R311 13 19.30*

13.1.6*

Relaxing requirements for std::chrono::time_pointP2212R2N/AN/A
DR: std::visit() for classes derived from std::variantP2162R211.3 13 19.20**
19.30*

13.1.6*

DR: Conditionally borrowed ranges P2017R111 19.30*
DR: Repairing input range adaptors and std::counted_iteratorP2259R112 19.30*(partial)*
19.31*
Providing size feedback in the Allocator interface P0401R615 19.30*
<spanstream> : string-stream with std::span-based buffer P0448R412 19.31*
std::out_ptr(), std::inout_ptr()P1132R819.30*
constexprtype_info::operator==()P1328R112
Iterator pair constructors for std::stack and std::queueP1425R412 14 19.31*
Non-deduction context for allocators in container deduction guides P1518R212 13 19.31*

13.1.6*

ranges::starts_with() and ranges::ends_with()P1659R319.31*
Prohibiting std::basic_string and std::basic_string_view construction from nullptrP2166R112 13 19.30*

13.1.6*

std::invoke_r()P2136R312 19.31*
Range constructor for std::basic_string_viewP1989R211 14 19.30*
Default template arguments for pair's forwarding constructor P1951R112 14 19.30*
Remove Garbage Collection and Reachability-Based Leak Detection (library support) P2186R212 14 19.30*
DR: views::join should join all views of ranges P2328R111.2 19.30*
DR: view does not require default_initializableP2325R311.3 19.30*
DR: Range adaptor objects bind arguments by value P2281R111 19.29 (16.10)*
(partial)*
19.31*
DR: constexpr for std::optional and std::variantP2231R111.3 (partial)*
12
13 (partial)*19.31*

13.1.6* (partial)

DR: std::format() improvements P2216R314 (partial)*19.32*
DR: views::lazy_split and redesigned views::splitP2210R212 19.31*
zip: views::zip, views::zip_transform, views::adjacent, and views::adjacent_transformP2321R215 (partial)*
Heterogeneous erasure overloads for associative containers P2077R319.32*
std::byteswap()P1272R412 14 19.31*
Printingvolatile T*P1147R111.3 14 19.31*
basic_string::resize_and_overwrite()P1072R1012 14 19.31*
Monadic operations for std::optionalP0798R812 14 19.32*
std::move_only_functionP0288R912 19.32*
Add a conditional noexcept specification to std::exchangeP2401R012 14 19.25*
Require span & basic_string_view to be TriviallyCopyableP2251R1Yes Yes Yes Yes
Clarifying the status of the “C headers” P2340R1Yes
DR: Fix views::istreamP2432R112 19.31*
DR: Add support for non-const-formattable types to std::formatP2418R219.32*
DR: What is a viewP2415R212 14 19.31*
DR: Fixing locale handling in chrono formatters P2372R319.31*
DR: Cleaning up integer-class types P2393R119.32*
<expected>P0323R1212
constexpr for <cmath> and <cstdlib>P0533R9
std::unreachable()P0627R612 15 19.32*
Deprecating std::aligned_storage and std::aligned_unionP1413R3
A type trait to detect reference binding to temporary P2255R2
constexprstd::unique_ptrP2273R312 19.33*
ranges::toP1206R7
Pipe support for user-defined range adaptors P2387R3
ranges::iota, ranges::shift_left, and ranges::shift_rightP2440R1
views::join_withP2441R2
views::chunk and views::slideP2442R1
views::chunk_byP2443R119.33*
C++23 feature
 
Paper(s)
 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang
Sun/Oracle C++
Standard Library
Embarcadero C++ Builder
Standard Library
Cray C++
Standard Library
close