B.5 — Introduction to C++23

What is C++23?

In February of 2023, the ISO (International Organization for Standardization) approved a new version of C++, called C++23.

New improvements in C++23

For your interest, here’s a list of the major changes that C++23 adds. Note that this list is not comprehensive, but rather intended to highlight some of the key changes of interest.

  • Constexpr <cmath> (e.g. std::abs()), and <cstdlib> (6.7 -- Relational operators and floating point comparisons).
  • Constexpr std::bitset and std::unique_ptr (no lesson yet).
  • Explicit this parameter (No lesson yet).
  • Fixed-size floating point types (via <stdfloat>) (No lesson yet).
  • Formatted printing functions std::print and std::println (no lesson yet)
  • Literal suffixes for std::size_t and the corresponding signed type (5.2 -- Literals).
  • Multidimensional subscript operator[] (Mentioned in lesson 17.13 -- Multidimensional std::array).
  • Multidimensional span std::mdspan (17.13 -- Multidimensional std::array).
  • Preprocessor directives #elifdef and #elifndef (no lesson yet).
  • Preprocessor directive #warning (no lesson yet).
  • Stacktrace library (no lesson yet)
  • Standard library modules std (and std.compat) (no lesson yet).
  • Static operator() and operator[] (no lesson yet).
  • std::expected (no lesson yet).
  • std::ranges algorithms starts_with, ends_with, contains (no lesson yet)
  • std::string::contains and std::string_view::contains (no lesson yet)
  • std::to_underlying to get the underlying type of enum (13.6 -- Scoped enumerations (enum classes)).
  • std::unreachable() (no lesson yet).
  • Using unknown pointers and references in constant expressions (17.2 -- std::array length and indexing).
guest
Your email address will not be displayed
Find a mistake? Leave a comment above!
Correction-related comments will be deleted after processing to help reduce clutter. Thanks for helping to make the site better for everyone!
Avatars from https://gravatar.com/ are connected to your provided email address.
Notify me about replies:  
4 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments