Bjarne Stroustrup

C++ in constrained environments

Think modern C++ is too heavy for embedded systems? This talk proves how new features can actually improve performance and safety in constrained environments.

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.

test

Milly
Vienna, Austria

Intermediate

test

Milly
Vienna, Austria

Intermediate

Featured Partners

Related Articles

View all articles
CH
Chris Heilmann
All the videos of Halfstack London 2024!
Last month was Halfstack London, a conference about the web, JavaScript and half a dozen other things. We were there to deliver a talk, but also to record all the sessions and we're happy to share them with you. It took a bit as we had to wait for th...
All the videos of Halfstack London 2024!

From learning to earning

Jobs that call for the skills explored in this talk.