# Compiler support for C++26

From cppreference.com
< cpp‎ | compiler support

### C++26 core language features

C++26 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 |
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
DR: Removing undefined behavior from lexing | P2621R2 | Yes | 3.3 |  |  |  |  |  |  |  |  |  |
DR: Making non-encodable string literals ill-formed | P1854R4 |  | 14 |  |  |  |  |  |  |  |  |  |
Unevaluated strings | P2361R6 |  | 17 (partial)* |  |  |  |  |  |  |  |  |  |
Adding `@`, `$`, and ``` to the `basic character set` | P2558R2 |  | Yes |  |  |  |  |  |  |  |  |  |
constexpr cast from void* | P2738R1 | 14 | 17 |  |  |  |  |  |  |  |  |  |
DR: On the ignorability of standard attributes | P2552R2 |  |  |  |  |  |  |  |  |  |  |  |
DR: Static storage for braced initializers | P2752R2 | 14 |  |  |  |  |  |  |  |  |  |  |
User-generated `static_assert` messages | P2741R2 |  | 17 |  |  |  |  |  |  |  |  |  |
Placeholder variables with no name | P2169R4 |  | 18 |  |  |  |  |  |  |  |  |  |
C++26 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

### C++26 library features

C++26 feature | Paper(s) | GCC libstdc++ | Clang libc++ | MSVC STL | Apple Clang | Sun/Oracle C++ Standard Library | Embarcadero C++ Builder Standard Library |
--- | --- | --- | --- | --- | --- | --- | --- | ---
Testing for success or failure of `<charconv>` functions | P2497R0 |  |  |  |  |  |
std::text_encoding: text encodings identification | P1885R12 |  |  |  |  |  |
Arithmetic overloads of `std::to_string` and `std::to_wstring` use `std::format` | P2587R3 |  |  |  |  |  |
Type checking format args | P2757R3 |  |  |  |  |  |
Formatting pointers | P2510R3 | 14 | 17 |  |  |  |
Hashing support for std::chrono value classes | P2592R3 |  |  |  |  |  |
Read-copy update (RCU) | P2545R4 |  |  |  |  |  |
Hazard pointers | P2530R3 |  |  |  |  |  |
ADL-proof `std::projected` | P2538R1 | 14 |  | 19.38* |  |  |
constexpr stable sorting | P2562R1 |  |  |  |  |  |
Member `visit` | P2637R3 |  |  |  |  |  |
std::is_within_lifetime in constant evaluation | P2641R4 |  |  |  |  |  |
Extending associative containers with the remaining heterogeneous overloads | P2363R5 |  |  |  |  |  |
Enabling the use of `std::weak_ptr` as keys in unordered associative containers | P1901R2 |  |  |  |  |  |
Native handles in file streams | P1759R6 |  |  |  |  |  |
Interfacing string streams with `std::string_view` | P2495R3 |  |  |  |  |  |
Interfacing `std::bitset` with `std::string_view` | P2697R1 |  |  |  |  |  |
More constexpr for `<cmath>` and `<complex>` | P1383R2 | 4.6 (partial)* |  |  |  |  |
Adding the new 2022 SI prefixes on ratios: std::quecto, std::ronto, std::ronna, and std::quetta | P2734R0 |  | 17 |  |  |  |
std::function_ref: type-erased callable reference | P0792R14 |  |  |  |  |  |
std::copyable_function | P2548R6 |  |  |  |  |  |
`std::bind_front`, `std::bind_back`, and `std::not_fn` to NTTP callables | P2714R1 |  |  |  |  |  |
std::submdspan() | P2630R4 |  |  |  |  |  |
Freestanding Language: Optional ::operator new | P2013R5 |  |  | N/A |  |  |
C++26 feature | Paper(s) | GCC libstdc++ | Clang libc++ | MSVC STL | Apple Clang | Sun/Oracle C++ Standard Library | Embarcadero C++ Builder Standard Library

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/compiler_support/26&oldid=155858"