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* |