Because C++ is multi-paradigm, all paradigms are possible within it (although they may not be syntactically easy or have reasonable error messages, etc etc). Therefore, either C++ is the obviously the best language (to its partisans) or it is a hellish agglomeration of mutually contradictory confusing crap that takes years to begin to understand (to its detractors). Unfortunately, those two camps each find their position obvious, and seem to be unable to communicate with one another.
std::cout << "This does what??!" << endl;
Nowadays I spend my consulting work in Java and .NET land, and actually I favour the Wirth family of languages over C and C++.
However, C and C++ have a big tooling support in the industry, and history shows system programming languages are only successful when backed by OS vendors.
Having said that any language with a GC is unlikely to supplant C++. I would have thought that anything that could get away with using GC is already not using C++. Ergo what will finally kill C++ in all its final domains is IMO some sort of better C. Maybe Rust, if they sort out their non-mandatory GC.
Technology changes fast, but humans take generations to be convinced of something.
Sometimes the only way for something to get adopted is when the luddites no longer have a word to say.
std::cout << "This does what??!" << endl;
If you're using namespace std then it's obvious (note that this is considered bad practice), assuming you haven't overridden <<, but otherwise it depends on endl's type and value. Maybe you meant std::endl?C++ is a wonderful language for people who like puzzles, and it's also good for making fun of know-it-alls.
Except trigraphs are another wart inherited from C (ANSI C section 5.2.1.1 A).