| C++ language revisions | 
|---|
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
Changes that have been accepted into C++26 include:
Language
- Unevaluated strings
 - Adding 
@,$, and`to the basic character set constexprcast fromvoid*- User-generated 
static_assertmessages - Placeholder variables with no name
 - Pack indexing
 - Attributes for structured bindings
 - Erroneous behavior for uninitialized reads
 = delete("reason");- Variadic friends
 
Library
- Hashing support for 
std::chronovalue classes std::is_within_lifetime- Native handles in file streams
 - Interfacing string streams with 
std::string_view - Interfacing 
std::bitsetwithstd::string_view - More 
constexprfor<cmath>and<complex> - Adding the new 2022 SI prefixes on ratios: 
std::quecto,std::ronto,std::ronna, andstd::quetta std::copyable_functionstd::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>
Compiler support
The compiler support for C++26 features is listed at cppreference.com.
References
- ↑ "Working Draft, Standard for Programming Language C++" (PDF). Open Standards. ISO/IEC. 2024-04-16.
 
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.