Misplaced Pages

C++26

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Computer programming language
This article needs to be updated. Please help update this article to reflect recent events or newly available information. (May 2024)
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.

Features

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

Language

  • 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
  • constexpr placement new
  • Structured binding declaration as a condition
  • Ordering of constraints involving fold expressions
  • Deleting a pointer to an incomplete type should be ill-formed
  • Structured bindings can introduce a pack
  • Allowing exception throwing in constant-evaluation
  • constexpr structured bindings and references to constexpr variables
  • Oxford variadic comma, i.e. "Deprecate ellipsis parameters without a preceding comma. The syntax (int...) is incompatible with C, detrimental to C++, and easily replaceable with (int, ...)."
  • Removing deprecated array comparisons

Library

  • 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>
  • Saturation arithmetic with, among others, std::add_sat, std::div_sat

External links

References

  1. "Working Draft, Standard for Programming Language C++" (PDF). Open Standards. ISO/IEC. 2024-04-16.
  2. "P3176R1: The Oxford variadic comma". eisenwave.github.io. Retrieved 2024-12-09.
C++
Features
Standard Library
Ideas
Compilers
IDEs
Superset languages
Dialects
Relative to
other languages
Designer
Category
Categories: