Hello.....I am an embedded developer (by that I mean ~3k of RAM and ~200k of program memory), and I use a subset of c++ as my preferred language in that domain (If you are shocked by that and want to argue with me about that see rant bellow).

I love the low level programming, but I also love the ability to abstract the hardware away that c++ gives you.....


Please don't tell me that c is far superior to c++ in this domain because I can do everything that you can do in c in c++ (but better). And yes I am aware that the standard library uses heap allocation and whatnot (I never said I used the standard library).

Obviously, I cannot program c++ like I would for a desktop machine (you cannot program in c like your programming for a desktop machine either). I only use the feature of c++ that are useful to embedded.....the most notable exclusions are:

  • No dynamic memory
  • No virtual functions (or extremely rarely)
  • No exceptions

Also for every one that says volatile is not for multi threading.....yes this is true, but if I cannot use the standard library (because it doesn't exist for most of the platforms I work with), who do you think implements std::atomic and the like......for which some tools that we need are volatile (in addition to other tools)


  • Wisconsin, USA
  • Member for 3 years, 10 months
  • 0 profile views
  • Last seen Sep 13 '18 at 21:19