I love both C and C++, although I don't use them currently. And I can't imagine using them in the future.
The issue here: is there a language that is both low-level enough to write hardware drivers yet high-level enough to abstract away anything that I might want? Close-enough to the metal to bit flip with the best of them yet powerful enough to create and organize large hunks of code?
I think the answer is pretty clearly C++. C is a very close second, but the entire reason from evolving from C to C++ was large development situations.
Would I write a new web-app in C++? Heck no. But software development is a lot bigger than the little corner of the world I have my fingers in, and I can easily see where C++ will be around 20 years from now -- and for new development, not just maintenance. Perhaps even 50 years. So no, not a dead end by any means.