What’s New in C++23

This course takes a detailed look at what’s new in C++23, both in terms of language techniques and library enhancements. We’ll explain the purpose of the new features, explore the nuances, and see how to apply them properly. We also take a sneak preview of what to expect in C++26.

The course is designed to cover 2 full days. The course can also be scheduled as a 1-day event if you want to select a subset of topics.

Duration

2 days

 

Prerequisites

  • Proficient C++ programmer
  • Familiarity with C++ up to version 20

What you'll learn

  • Core language changes
  • Reflection and metadata enhancements
  • Additional features for containers, algorithms and views
  • Concurrency and coroutines updates
  • Miscellaneous library enhancements
  • Glimpse into C++26

Course details

Setting the Scene

  • Overview of C++23 goals and non-goals
  • Evolution from C++20
  • Compiler support (GCC, Clang, MSVC)

Core Language Changes

  • Changes to the type system (explicit, auto, typeof)
  • Enhancements with this pointer
  • Static functors
  • Bitfield enhancements
  • Preprocessor enhancements
  • Exception management

Reflection and Metadata Enhancements

  • Constexpr enhancements
  • Type traits and utilities

Additional Features for Containers, Algorithms and Views

  • New containers and capabilities
  • New algorithms
  • Ranges improvements

Concurrency and Coroutines Updates

  • std

Miscellaneous Library Enhancements

  • Formatting
  • Printing
  • Date, time, and calendar
  • std

Glimpse into C++26

  • Contracts
  • Reflection
  • Concurrency and parallelism
  • Additional bits and pieces