As the chair of SG14 Embedded, I like to give an update of what we have done for embedded. But this talk is much more than that. It will describe our group’s collective experience in what is Embedded which has come from Automotive, games, Medical, Finance and many others. The definition is surprisingly wide and covers hard- and soft-real time, wide span of seriousness, hardware, replication, response time, and supported software. For that matter, who are the Embedded programmers? I will tie this back to the two pillars of C++: a direct map to hardware and zero overhead. I will argue why we should use C++, some of the bad reasons for note using C++, and identify 2 of the biggest problems people have complained about moving to C++. Understanding that Embedded compilers may not be up to the latest standard, we plan to separate Modern C++ into 3 Ages so that we can have people to change their code with varying levels of Embedded C++ compiler support. Finally, I will show some examples of how to change from C to C++ as one of the most common case in the Embedded community. I will show some of the common c++ features for each of several cases which includes Adopting to C++ in one shot, and gradual adoption for various sizes of systems. These are some of the common cases when people need to convert to C++ from some other language in the Embedded domain. We hope this overview and deep dive at the same time will give people a better appreciation and realistic perspective of what it takes to move to Modern C++ for Embedded systems.

Michael Wong
DE, Codeplay

Streamed & Edited by Digital Medium Ltd –
[email protected]

By admin

7 thoughts on “Modern Software Needs Embedded Modern C++ Programming – Michael Wong – CppCon 2020”
  1. 19:31, do you mean a variable size compiler-time array (not a vector)? Not an allocated memory, but a fully handled by the compiler 1?
    25:25, to me, the most frequent issue in project come from its details. For C++ specifically, type misinterpretation is the 1.
    46:19, no, this is precisely what we want. ',' could be confused with other countries notation.
    47:10, I guess you forgot to write the 'class' after enum, on the right side. 48:15, ')' replacing '}'.

  2. If you work in the field of embedded system and have certain knowledge in c/c++ language, toolchain, operating system, hardware, and middleware application development, this talk is more than awesome. Very appreciated!

  3. There are actually quite a few things missing in C++ to be used in (smallish) embedded, in particular in the sdt because of the allocations.
    C++ needs to have ~two more standard allocators to be practically useful, both of which to use static memory – one will be fast and allocate-only, one will be more advanced and slower. This is covers the expectations and most of the use cases.
    Completely unrelated, C++ also needs non-recursive way to iterate over a data structure like a variant – think "visit" but without recursion and with early outs (unlike fold expressions today).

Leave a Reply

Your email address will not be published.