I agree. C++ has really seen something of a renaissance in the last few years with C++ 11 and 14. CPU core speed has flattened, and people are realizing that efficiency isn't really something that can be ignored in many cases. Moreover, C++ is and always has been a very portable language, as you can compile it on just about every platform imaginable.
Nowadays, you can write C++ and be assured that you'll rarely have to even think about explicit memory management or leaks. Moreover, what really surprised me was how I actually now prefer the simpler, more versatile, and more predictable referece-counted paradigm over managed memory and garbage collection. The lack of a destructor mechanism means that releasing resources in a predictable manner tends to be a bit less elegant because it's handled in a different way. In C++, memory is just like any other resource.
A lot of people talk about the complexity of C++. There are a couple of things to remember. C++ IS a pretty big and complex language of course, but you don't necessarily have to actually deal with much of that complexity in many circumstances. First, a lot of complexity is related to it's own backwards compatibility both with C and it's own early features. Unless you're maintaining or interfacing with old code, many of those features are largely irrelevant when writing modern C++. If that's not the case, you either have some exceptional circumstances, a very old codebase, or you're not really using the language correctly. Second, C++ can be viewed as two different languages: one suited for library writers, and one for library users (or application programmers). Writing C++ for use in languages can actually be rather difficult - it should be viewed as expert-level language skills. However, C++ actually makes it extremely easy to use a library. And in fact, a well designed library should actually be very difficult to use incorrectly, especially when compared to C.
The language definitely has it's strengths and weaknesses, and I certainly wouldn't recommend it for everything. I'd say C++ starts to really shine when you talk about extremes. If you need your program on a lot of different platforms, need it to run extremely fast, or it has to run with extremely limited constraints, or it's an exceptionally large and complex program, then C++ may be a good fit.