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)
Member for 4 years, 2 months
26 profile views
Last seen Jun 20 '19 at 12:07