C++ will be around for a long time, especially in game production. Why? Games are selfish; they want every CPU cycle and every byte of memory to themselves. While the performance of a game is a concern, the less likely C# will be the host language due to its intrinsic performance overheads such as garbage collection. In addition, C# doesn't like the idea of manually managing memory; hence the garbage collection -- most open-source games that I know of create custom memory allocators, which C# reluctantly allows, for optimal performance.
I will admit, I strongly dislike C#, so I'm trying not to be bias here, but it's proving to be quite the challenge. The truth is, C++ removes many restrictions which C# imposes, thereby increasing some flexibility and freedom. In addition, C# is dependent on the .NET Framework.
The entire world is built on C and C++. This isn't going to be changed overnight, in a few years, or probably even in my lifetime.
That being said, the demand for common C++ (code monkey) jobs could potentially diminish due to the speed differences in the development cycles between technologies, but there will always be a demand somewhere.