The right tool for the job....C++ is very much the only game in town when you need extremely high performance apps.  Think anything in the algorithm world like imaging or real time analytics where you have to wring every ounce of performance out of your app.  C# and Java simply don't cut it in these areas and anyone trying to push that those languages are even close to the performance of C++ are full of it.  Well written C++ is several times faster than the same code written in C#.  Sure there are fringe cases where C# can approach C++ speed but my bet is those are cases where C# is calling in to native code that is doing most of the work.  But pure C# vs. pure C++?  No contest.  And no, I am not trying to start a flame war.  I use C++ and C#, making value judgments on which tool is right for a specific job. You don't drive screws with a hammer do you?  I have seen too many projects fail or suffer because someone chose tool A simply because they or their team knew tool A instead of choosing the appropriate tool B.

That isn't to say your whole app has to be written in C++....C# can be the presentation layer or the db access layer, that totally makes sense.  But you would have to be nuts to say write an FFT routine in C#.  Microsoft cannot cut off C++ because it needs it as well as it's ISVs in order to deliver the high performance business apps that their customers need.