Programming in C++26
Course objectives
The delegates will explore:
- how to use contracts to improve API quality and security
- static reflections
- C++26 core features
- unified async model - Senders/Receivers
- new features in the standard library
Course syllabus
Contracts
- Preconditions, postconditions, assertions
- Enforcement modes and violation handling
- Using contracts to express invariants and strengthen APIs
Static Reflection
- Reflecting types, members, functions at compile time
- Generating code automatically - typical use cases
- Replacing macros and template boilerplate
C++26 Core Features
- Safety features - uninitialized reads
#embed- Structured Bindings
- Attributes on Structured Bindings
- Structured Bindings in conditions
- Structured Bindings introducing packs
- Pack Indexing
- constexpr features in C++26
Senders/Receivers & Execution Model
- Structured Concurrency - Unified async model
- Senders, Receivers & Schedulers
- Composing asynchronous operations
- Integrating with coroutines
- Error propagation and cancellation in async workflows
C++26 Standard Library
- Hardenning the Standard Library
- New containers
- std::inplace_vector
- std::hive
- New features in Ranges library
- Concatenating & caching views
- String concatenation
- Saturation Arithmetics
- Enabling list initialization for algorithms
Prerequisites
Working knowledge of C++17 or C++20