try 1.5x-3x more efficient
and FYI, c++ is way more platform specific than java is
and in the enterprise, ease of understanding and maintainability is usually more important than efficiency
Assuming you aren't doing platform specific things (creating windows, interacting with drivers, etc). C++ is actually pretty platform agnostic. Sure, you can't take a C++ binary and run it everywhere. But you really can't take a java Jar and run it everywhere either. You have to have the right JVM version, and all the JVM features you use must be implemented consistently... inconsistencies in JVM implementations happen more frequently than you would imagine.
C++ also has the benefit of being ancient. Most of the stuff that is platform specific has a wrapper library that is prepared for you to resolve most if not all platform incompatibilities.
Of course, C++ is far from perfect. Bad C++ is pretty gnarly to deal with. However, just like java, most of that gnarliness can be mitigated by using sound programming principles and not doing weird stuff (true for most programming language).
What does C++ offer? It is possibly the only language with more libraries than java. It is also one of the most easy-to-integrate languages. Pretty much every language can interact with C++ and vice versa.
C++ also offers a dauntingly large number of language features. Some find this as a con, I find it as a pro (you don't have to use every feature, but it is nice to have the option to use many of them). On top of that, C++11 and beyond look to be very modern languages indeed.
I'm not saying C++ should be used anywhere, just that it shouldn't be thrown away without a second thought (most languages shouldn't). If you are looking for a fast language, low level support, which compiles to every platform, there isn't much better you can do than C++.