I was one of the very first people not employed at AT&T to learn C++. I bought the Zortech compiler long before there was any other for Windows. At Microsoft I wrote the company’s very first project in C++, the original version of what is now the SQL Server Management Console. I thought I’d use C++ the rest of my career.
I haven’t used it in over a decade.
I can tell you exactly when C++ went bad: when the throw keyword was added. That year a lot of formerly stable software started to crash all the time as developers used throw not just for exceptions but in place of return values or just to save a few minutes of typing.
Excepting only pair programming, throw is the worst thing that ever happened to software development.
Multiple inheritance was a bad idea; inheritance itself was poorly thought out but could anyone read ATL? But it was throw that killed what had been a great language.