Namespaces
Variants
Views
Actions

Difference between revisions of "Template:cpp/compiler support/23"

From cppreference.com
(C++23 core language features: P2266 has not been accepted.)
(P2166 done in https://github.com/llvm/llvm-project/commit/775caa58fcf9005494acdd132a07c8d7edb534b2)
Line 191: Line 191:
 
| reference={{wg21|P2166R1}}
 
| reference={{wg21|P2166R1}}
 
| version=c++23
 
| version=c++23
 +
| clang={{yes|13}}
 
| msvc={{yes|{{msvc ver|19.30}}}}
 
| msvc={{yes|{{msvc ver|19.30}}}}
 
}}
 
}}

Revision as of 07:25, 29 July 2021

C++23 core language features

C++23 feature

 
Paper(s)

 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XL C++
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Literal suffix for (signed) size_t P0330R8 11 13
Make () more optional for lambdas P1102R2 11 13
if consteval P1938R3 12
Removing Garbage Collection Support P2186R2 12
DR: C++ Identifier Syntax using Unicode Standard Annex 31 P1949R7
DR: Allow Duplicate Attributes P2156R1 11 13
Narrowing contextual conversions in static_assert and constexpr if P1401R5 9 13
Trimming whitespaces before line splicing P2223R2 Yes Yes Yes
Make declaration order layout mandated P1847R4 Yes Yes Yes Yes
Removing mixed wide string literal concatenation P2201R1 Yes Yes Yes Yes Yes
 

C++23 feature
 

Paper(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XL C++
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc

C++23 library features

C++23 feature

 
Paper(s)

 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
Stacktrace library P0881R7
<stdatomic.h> P0943R6
std::is_scoped_enum P1048R1 11 12 19.30*
basic_string::contains(), basic_string_view::contains() P1679R3 11 12 19.30*
std::to_underlying P1682R3 11 13 19.30*
std::visit for classes derived from std::variant P2162R2 13 19.20**
19.30*
Relaxing requirements for time_point<>::clock P2212R2 N/A N/A
DR: Conditionally borrowed ranges P2017R1 19.30*
DR: Repairing input range adaptors and std::counted_iterator P2259R1 19.30*(partial)*
Providing size feedback in the Allocator interface P0401R6
<spanstream> : string-stream with std::span-based buffer P0448R4
std::out_ptr(), std::inout_ptr() P1132R8
constexpr type_info::operator==() P1328R1
Iterator pair constructors for std::stack and std::queue P1425R4
Non-deduction context for allocators in container deduction guides P1518R2 13
ranges::starts_with() and ranges::ends_with() P1659R3
Prohibiting std::basic_string and std::basic_string_view construction from nullptr P2166R1 13 19.30*
std::invoke_r() P2136R3
Range constructor for std::basic_string_view P1989R2 11 19.30*
Default template arguments for pair's forwarding constructor P1951R1
Remove Garbage Collection and Reachability-Based Leak Detection (library support) P2186R2 12 19.30*
DR: join_view should join all views of ranges P2328R1
DR: view does not require default_initializable P2325R3 19.30*
DR: Range adaptor objects bind arguments by value P2281R1 19.29 (16.10)*
DR: constexpr for std::optional and std::variant P2231R1
DR: std::format() improvements P2216R3
DR: lazy_split_view and redesigned split_view P2210R2
 

C++23 feature
 

Paper(s)
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*