C++ is crap for system/embedded programming because all the useful stuff that makes it easy and readable in C has been deprecated, mostly because it was deemed too dangerous.
Yes, I know that I should not be feeding the troll, but...
There aren't that many non-cosmetic C features that are not available in C++. Let's go over the ones I am familiar with, and you are welcome to add others if I missed anything important (note: I consider requiring an explicit cast to be a purely cosmetic issue).
* Restrictions on type punning (C allows type punning via unions, standard C++ does not).
However, most type punning requirements can be solved by using memcpy() or placement new instead of an assignment, or bit_cast (since C++20), and the optimizers are recognizing the pattern and generating the same code.
The other cases should be taken care of in C++23. That said, many compilers allow union type punning as an extension.
* The restrict keyword as a hint to the optimizer.
Many compilers implement this as an extension, and the optimization benefits are not that great.
* Flexible array members
I believe that it is a bad omission for POD types, but luckily many compilers support it as an extension.
There's also a proposal which I hope will be adopted.
* Variable length arrays.
They require a runtime sizeof operator, and are no longer used in the Linux kernel since 4.20, so I am not sure how important they actually are and if they offer a any significant benefit over std::vector (possibly with a custom stack allocator).
In short, nothing in the above qualifies as "crap".
C++ is crap for application programming because the benefits over much easier, better designed languages are non-existent most of time. Yeah, it's a bit faster in some cases, but it usually doesn't make any meaningful difference.
Whenever you come across something written in C++ you get this feeling of dread because you know that it's almost certainly total crap.
In the absence of specific and quantifiable examples, the opinions quoted are total crap.