I prefer C. If I want some more language sugar or safer constructs, I am finding Rust better. If you want "high performance, high reliability, small footprint, low energy consumption" it's pretty hard to beat assembly, but you lose portability to other architectures. Honestly, that's why I don't C go any where. However, I see C++ being superseded, by other languages eventually. Yet that's not going to happen quick because C++ does have a lot code written out there. Giving it a large historical inertia.
Stroustrup is effectively saying: if it needs to be fast and efficient then C++ is the choice. Historically I agree, I think it’s still valid in a lot of cases today, but for the future I think hardware speed and the efficiency of GC languages will supplant the importance of C++ for most of the core use cases for C++ today.
Since when are GC languages efficient? They use more memory, suffer from non-deterministic performance. Also hardware speed/performance are hitting limits. If anything that means we need to be more efficient. Also to avoid performance issues like false sharing in CPU caches when having multiple threads you need more control of memory layout than most garbage collected languages/run-times.
People have been saying that for 50 years, though.
C++ covers the whole spectrum from C-like, low-level programming to high-level, Python-like programming; which is why it dominates programming competitions, and manages to beat Haskell and OCaml at their own game in the ICFP. I think it's quite possible that C++ will evolve enough that it won't need being replaced at all. With the last and upcoming standards, C++ has gotten some inspiration from Python; it looks like it might also copy a few good ideas from Rust going forward.
Many historical criticisms of C++ have never been valid ("it's not elegant"), and the valid ones are being addressed: safer constructs, better tooling, improving support for modularization, better compile times, etc.