For example, AFAIK you cannot have a naked struct in C++. A struct is a class, and therefore can have methods, thus can have constructor and destructor.
Also, exceptions are a big part of C++ that I don't think you can remove?
If you want simple, obvious separation of data and logic, and you don't want exceptions or name mangling, then C is probably a better choice for that domain.
I like C++, but it is not C and is unlikely that one will ever replace the other in all the domains.
OTOH, if you want to write OO and you like C++, then it is not a bad choice.
I think both are being used to write new systems, so neither is legacy :-)