I answered the question you asked which, frankly, is a poor question. "Can" is easy to answer and "will" is a ridiculous question.
The more useful question is, "Does the language provide tools to make the proper tradeoffs in various situations?" The answer to that question, for C++, is "yes," and "certainly better than C does."
I am willing to say a C-style code will compile and run just as fast with a C++ compiler as with a C compiler and the C++ compiler will catch more semantics errors. I will also contend that the code generation is of just as high a quality as for the C compiler, because the optimizer and code generator is likely exactly the same. Anything beyond that involves analyzing tradeoffs.
For example, C++ templates introduce better type safety at the cost of potential longer compile times. Just how much longer is a function of how type safe and performant you want the code to be.
Take a generic data structure. In C one might code this with void * which results in compact and unsafe code that compiles in time X. With C++ one can put a template wrapper around that void * code and get type safety with negligable compile time impact (I would say zero).
A fully-typed template implementation (getting rid of void *) will provide even better type safety and often better performance than even the C version at the cost of higher compile time. For me, programmer time and user time is much more expensive than computer time so safety+performance is always a winner over compile time.
I cannot answer which subset of C++ is best for anyone because it depends on the nature of the problem. I have used all of C++'s paradigms in my projects and the developer time savings has been terrific. I don't much care about compile time but that reflects my needs. Someone else likely has different needs.
But what I do know is that if one has "C-style" needs than one can write "C-style" in C++ and take advantage of better safety and performance. Note that by "C-style" I don't mean simply porting C code to compile with a C++ compiler. I mean making use of things like boost::array and rvalue references where appropriate to eliminate unsafe and underperforming C constructs.