I have a project I am entertaining where C++ appears to be the bottleneck to productivity in a ARM environment.
Why?
The extra memory needed is tiny. The team productivity gains can be huge (if the team have the experience etc). Next comes the cost/benefit review which will be a very personal affair.
The ARM environment may be a little different, generally less RAM/ROM and/or you have to fit more so cost. In high volume you would have to factor that in & some have used assembler rather than C for cost reasons.
the ESP32 platform is a resource constrained system. An example: PThread is a wrapper for freeRTOS.
Is that a formal fallacy?
Wrapping freeRTOS with PThread does not make the ESP32 resource constrained, just someone came up with a good time saver.
There is an intersection between team performance gain (e.g. vectors, map, boost etc) and the drag on (marginal) extra resource use, the trade between generic pre-writen library vrs bespoke project 'wired for x' (& often buggy) library.
IMHO most resource concerns relate to the design architecture rather than the language. Design effort would be improved if you did not have to write so much code, i.e. use the C++ libraries!
I am on 22 tasks ATM (leavering other's libraries rather than writing from scratch) and I am not feeling the pinch (touch wood).
PS
I bet EventHorizon liked to poke sticks in ants nests as a child, may still do
PPS
The first C++ project I worked on was a disaster. Noone knew how to approach C++ except the man we followed, turned out he had a text book under his desk.
EDIT: Sorry but I am going to have to add a PPPS
PPPS
What's not to love about boost? Can anyone think of a basic problem not (for years & years) already solved by boost?
I just rolled boost endian for a serial stream, platform neutrality in a header, job done! Last week it was boost any for a type safe database (no RTTI in ESP). No resource drag(tiny blip on my radar), just works!
My biggest resource drags are webpages and then ano library. Last ano issue was SPIFFS &FATFS (CPU/throughput) the latter are IMHO algorithmic/implementation issues. So I switched to another library written in the dark ages, written with a keener sense.
So yes, you can get lazy/mess up in any language but C++ rocks (less than C# though & as I don't like tabs node over python).