| You cannot also use stdio and most stdlib, so what? You would want to use C++ for stronger type safety, proper enumerations, templates instead of undebuggable macros, namespaces,.... https://news.ycombinator.com/item?id=31406942 "CppCon 2016: Jason Turner “Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17”" https://www.youtube.com/watch?v=zBkNBP00wJE MCUs also don't support full-blown C, and it isn't a show stopper to keep advocating it, so why should it be for a language with better safety options, even with constraints. |
You can still use a subset of stdio and stdlib. Newlib also provides hooks you can use to implement fopen and the like, if you want.
> better safety options
Safety is not always the utmost priority. At least, not that kind of safety. It seems people forget this concept from time to time.
> templates instead of undebuggable macros
This is if you use complex macros, which is not always the case. I've been doing embedded for 20 years and I rarely (very rarely) find problems with macros.
But you know what's undebuggable on embedded? Complex inheritance, which sooner or later you'll hit with OOP.
For a system in which you don't have a screen, or logs, or any kind of output, that is usually not in your table, and you have to study failures by telling someone to look at an LED, or by guessing what could have gone wrong, you have to keep your system simple.
Add templates to the mix and good luck opening the project six months later, when a customer calls with a problem.
Edit: But again, used with caution, C++ can be used in embedded, at least the way I use it, as explained before.