Think modern C++ is too heavy for embedded systems? This talk proves how new features can actually improve performance and safety 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
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...
Panel Discussion: Responsible AI in Practice - Real-World Examples and ChallengesIntroductionIn the ever-evolving landscape of artificial intelligence, the concept of "responsible AI" has emerged as a cornerstone for ethical and practical AI implementation. During the WWC24 Panel discussion, three eminent experts—Mina, Bjorn Brin...
Gerry Schneider
I have a stream! Why it’s definitely worth speaking at tech conferences.Giving talks at certain events is a longed-for goal for many developers. For a good reason: it is the perfect opportunity to share your expertise and passion for a specific topic, help others learn from your mistakes, drive awareness of your solution...
From learning to earning
Jobs that call for the skills explored in this talk.