Bjarne Stroustrup
C++ in constrained environments
#1about 5 minutes
Debunking common myths about C++ in constrained systems
Common misconceptions, such as needing to learn C first or that using a C-style subset is most efficient, are addressed to set the stage for modern C++ practices.
#2about 6 minutes
The onion principle and the C++ memory model
Design code using the onion principle by starting with clean, high-level interfaces and only peeling back layers of abstraction when performance tuning is necessary.
#3about 3 minutes
Understanding resource management with RAII
Resource management is the key to reliable C++, using constructors for acquisition and destructors for predictable, automatic release of resources like memory or threads.
#4about 8 minutes
Using modern language features for safer code
Replace unsafe, low-level constructs like unions and pointer-size pairs with safer, more expressive alternatives like `std::variant` and `std::span`.
#5about 7 minutes
Shifting computation from runtime to compile time
Improve performance and correctness by moving computations to compile time using `constexpr` functions, move semantics, and libraries like `std::chrono`.
#6about 6 minutes
Applying the C++ Core Guidelines for safety
The C++ Core Guidelines provide a framework for writing modern, safe code by starting with the full language and using libraries to encapsulate and restrict unsafe features.
#7about 12 minutes
Choosing the right error handling strategy
Adopt a clear policy for error handling by using error codes for expected, local failures and exceptions for rare, non-local errors that require a guaranteed handler.
#8about 6 minutes
Writing safe concurrent code and avoiding data races
Avoid undefined behavior from data races in concurrent code by using the C++ memory model, atomics for synchronization, and higher-level abstractions like threads and locks.
#9about 7 minutes
Q&A on local error handling and C++23 features
The speaker answers audience questions about testing for locally handled errors and discusses the expected features and delays for the C++23 standard.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
08:47 MIN
Q&A on language design, Rust, and the future of C++
The Design and Evolution of C++
06:50 MIN
C++ availability, ecosystem, and backwards compatibility
101 brilliant things of C++
04:40 MIN
Core strategies for achieving high performance
The Design and Evolution of C++
03:23 MIN
Adopting modern C++ with the core guidelines
The Design and Evolution of C++
07:25 MIN
Core design principles and the language evolution trilemma
The Design and Evolution of C++
02:20 MIN
Understanding the original design goals and evolution of C++
Eternal Sunshine of the Spotless Programming Language
07:52 MIN
Modern C++ evolution and the burden of backward compatibility
Eternal Sunshine of the Spotless Programming Language
01:24 MIN
Managing C++ complexity with strong coding guidelines
The C++ rvalue lifetime disaster
Featured Partners
Related Videos
The Design and Evolution of C++
Bjarne Stroustrup
101 brilliant things of C++
Andreas Fertig
C++ Features You Might Not Know
Jonathan Müller
The C++ rvalue lifetime disaster
Arno Schoedl
Functional Programming in C++
Jonathan Müller
A Love Letter to Rust
Rainer Stropek
An (In-)Complete Guide to C++ Object Lifetimes
Jonathan Müller
Eternal Sunshine of the Spotless Programming Language
Stefan Baumgartner
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.



Speech Processing Solutions
Vienna, Austria
Intermediate
CSS
HTML
JavaScript
TypeScript

SYSKRON GmbH
Regensburg, Germany
Intermediate
Senior
.NET
Python
Kubernetes

Peter Park System GmbH
München, Germany
Senior
Python
Docker
Node.js
JavaScript

CONTIAMO GMBH
Berlin, Germany
Senior
Python
Docker
TypeScript
PostgreSQL


Peter Park System GmbH
München, Germany
Intermediate
Senior
Bash
Linux
Python

Peter Park System GmbH
München, Germany
Intermediate
Senior
Python
Node.js
JavaScript