This article needs to be updated.(May 2024) |
C++26 is the informal name for the version of the International Organization for Standardization (ISO) and International Electrotechnical Commission (IEC) 14882 standard for the C++ programming language that follows C++23. The current working draft of this version is N4981.[1]
Features
editChanges that have been accepted into C++26 include:
Language
edit- Unevaluated strings
- Adding
@
,$
, and`
to the basic character set constexpr
cast fromvoid*
- User-generated
static_assert
messages - Placeholder variables with no name
- Pack indexing
- Attributes for structured bindings
- Erroneous behavior for uninitialized reads
= delete("reason");
- Variadic friends
Library
edit- Hashing support for
std::chrono
value classes std::is_within_lifetime
- Native handles in file streams
- Interfacing string streams with
std::string_view
- Interfacing
std::bitset
withstd::string_view
- More
constexpr
for<cmath>
and<complex>
- Adding the new 2022 SI prefixes on ratios:
std::quecto
,std::ronto
,std::ronna
, andstd::quetta
std::copyable_function
std::submdspan()
<debugging>
: Debugging Support<linalg>
: A free function linear algebra interface based on the BLAS- Added tuple protocol to
std::complex
views::concat
- Concatenation of strings and string views
std::ranges::generate_random
- Printing blank lines with
std::println()
std::formatter<std::filesystem::path>
- Saturation arithmetic with, among others,
std::add_sat
,std::div_sat
External links
editReferences
edit- ^ "Working Draft, Standard for Programming Language C++" (PDF). Open Standards. ISO/IEC. 2024-04-16.