Modern Software Needs Embedded Modern C++ Programming
summary
Argument: embedded systems deserve Modern C++ but must match compiler constraints, so migration splits into three Ages that map features to available toolchains. Practical steps include switching .c to .cpp, fixing cast errors, using brace initialization, static_assert, constexpr, and unique_ptr/std::array/move semantics for predictable, zero‑overhead lifetimes. Avoid heap and exceptions on hard real‑time paths; use fixed pools or flat containers. SG14 prototypes deterministic exceptions, a memory management facility, flat_map and ring buffers; companies like Sonova and Adaptive AUTOSAR already move toward C++17/20.
AI-written summary · about
chapters (27)
- 0:00Intro
- 2:46What Is an Embedded System?
- 5:55Wide span of response time
- 7:25Wide span of hardware
- 9:222 General domains
- 10:56Design characteristics
- 16:23C++ domains examples
- 17:01Constraints on the embedded code differ from Bjarne Stroustrup
- 18:06Some good reasons to stick with C
- 20:00Temporary reasons for Using C
- 26:02What people think and what C++ is
- 27:31Comparing C and C++
- 30:51C: Conventions rule
- 31:27C: Limited Type System
- 35:58The problem with floating point
- 36:33The problem with exceptions
- 38:23Gradual adoption strategy
- 39:49Gradual adoption: Low impact C++ feature
- 41:05Brace init prevents narrowing
- 41:59User defined literals
- 46:01digit separator in literals
- 47:03Enum classes
- 47:34By reference parameters
- 49:06Overloading
- 49:20Default parameters
- 50:04Abstract data types
- 52:11Future Embedded engineering
related talks
01h 11mC++ in the World of Embedded Systems
01h 09m“Modern C++ in Embedded Systems - The Saga Continues”
01h 08mKeynote: What can C++ do for embedded systems developers?
05mModern C++ in Embedded OS Dev
52mC++ for Embedded Development
01h 18mWriting better embedded Software
01h 31mBetter embedded library interfaces with modern C++
50mHow the Environment Changes the Way We Write C++ Code
