Yeah - but whenever I come across any C code that's moderately well-structured it always ends up re-inventing C++ constructs. Like objects, and constructors and destructors and so-on. Except of course each project does this type of thing in its own way, sometimes using the preprocessor, sometimes not, etc etc. The code generated is exactly the same as if the programmer had chosen C++, but the code is far less readable (and less maintainable) than the C++ version.
And in what sense are inline functions hard to understand? Multiple inheritance is simple. Friend classes should be avoided, like gotos, but sometimes you just wind up needing them (unlike goto's :) ). Templates are functional programming, and are hugely powerful. Why on earth would you want to code without the standard template library? I've written enough linked list classes to last a lifetime, thanks very much.
This irrational fear/hatred of C++ is something that in my 15 years of C++ development I have never understood. When I first saw C (after hobbying in basic as a kid) I was overwhelmed by its power and expressiveness. The same sensation occurred a few years later when I was introduced to C++. Perhaps you should invest some time in learning C++ so that things like inline (which I'm pretty sure exists in C also, BTW) and friends and so-on are no longer so baffling to you.