True, C++ has slipped since its hay days. Its natural in a way. C++ as a general purpose language cant compete with domain specific languages at their own domain. Even  if every domain got its own language, there might still be room for a generalist language that works across many domains.<p>But C++ also has some domains of its own where it is the king. Systems programming and any application where performance is a priority.<p>If C++ started slipping against a new languages in those areas, then it might be a sign of the end for C++. I don&#x27;t think its going to happen for a very long time. Its hard to beat C++ when it  comes to performance (while still having high level abstractions). And any general purpose language needs to know how to do &quot;a bit about everything&quot;, so it would probably be just as complex as C++.<p>(Even though C++ has slipped in percentages, I bet there are no fewer C++ programmers today than there ever was, there&#x27;s are just more programmers in general.)<p>If something is going to kill C++, its probably a language that scales very well to multicore. Maybe a functional language. I be happy if that happened as that would be a revolutionary breakthrough.<p>On you final points. I think C++ programmers are slowly but surely moving away from C-style coding towards modern C++ (and we will see less of those types of bugs). It takes time though. Id be happy if C++ at some point was sub-setted and the worst parts of C where deprecated (Thats the other aim of &quot;C++ Core Guidelines&quot; as I  understand it).<p>About the aliasing problem. I&#x27;m not sure how it could detect that either. We will probably have to live with it. In general though smart_pointers are still just pointers, and its better to avoid them when one can (and use value semantics instead).<p><a href="http:&#x2F;&#x2F;www.tiobe.com&#x2F;index.php&#x2F;content&#x2F;paperinfo&#x2F;tpci&#x2F;index.html" rel="nofollow">http:&#x2F;&#x2F;www.tiobe.com&#x2F;index.php&#x2F;content&#x2F;paperinfo&#x2F;tpci&#x2F;index....</a>