Modern C++ Safety and Security At 20
summary
C++20 introduces concrete safety wins and caveats: concepts move interface checks to compile time and cut runtime errors, atomic<std::shared_ptr> provides a true atomic specialization that removes many manual locks, and ranges replace raw iterator logic with expressive pipelines but can hide heavy computation. std::format is type-safe but allocates, coroutines avoid stack churn yet use the heap and add complexity, designated initializers and the spaceship operator reduce boilerplate, and volatile deprecations tighten platform-defined behavior.
AI-written summary · about
chapters (21)
- 0:00Intro
- 0:40Real-Time Requirements
- 3:07Real-Time Foundations
- 5:31Real-Time Performance Principles
- 8:33Coming Soon To A Compiler Near You
- 9:23What I Look For In New Features
- 12:07Aggregates
- 12:27Definition Change
- 12:45Breaking Change
- 15:13Scoped Enumerations
- 16:47using enum
- 18:47The Spaceship Operator
- 21:25Interface Safety
- 24:03Standard Concepts
- 39:14State Machines With Coroutines
- 46:05For Example
- 47:32volatile Deprecation
- 49:46Safety & Security Outcomes
- 51:47Contracts
- 55:12Zero Overhead Deterministic Exceptions
- 57:36Enumerating Core Undefined Behavior
related talks
36mTowards Safety & Security in C++26
01h 02mTowards Correctness, Safety and Security in C++26
01h 03mLifetime Safety in C++: Past, Present and Future
01h 06mSecurity Beyond Memory Safety - Using Modern C++ to Avoid Vulnerabilities by Design
01h 26mA Path to Practically Safe C++
01h 02mTowards Safety and Security in C++26
01h 26mVulnerable C++
51mSecure Programming Practices in C++
