Cannabis Ruderalis

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[edit]

Changes that have been accepted into C++26 include:

Language[edit]

  • Unevaluated strings
  • Adding @, $, and ` to the basic character set
  • constexpr cast from void*
  • 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 with std::string_view
  • More constexpr for <cmath> and <complex>
  • Adding the new 2022 SI prefixes on ratios: std::quecto, std::ronto, std::ronna, and std::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>

Compiler support[edit]

The compiler support for C++26 features is listed at cppreference.com.

References[edit]

  1. ^ "Working Draft, Standard for Programming Language C++" (PDF). Open Standards. ISO/IEC. 2024-04-16.

Leave a Reply