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 judiciously and in non critical code paths)
- No exceptions