"For years I've tried my damnedest to get away from C. Too simple, too many details to manage, too old and crufty, too low level. I've had intense and torrid love affairs with Java, C++, and Erlang. I've built things I'm proud of with all of them, and yet each has broken my heart. They've made promises they couldn't keep, created cultures that focus on the wrong things, and made devastating tradeoffs that eventually make you suffer painfully. And I keep crawling back to C."

That's an interesting link. From a technical standpoint I don't think anything is inherently bad with C++ features. However there's no doubt that it encourages rather different approaches to software design.

C programs often use no abstractions whatsoever and will directly call the external libraries and kernel.

C++ facilitates rich levels of abstraction, which is generally a selling point for developers to choose it over C, and yet these very abstractions can be responsible for adding many more inefficient layers than we typically find in C programs.

OOP interfaces significantly help with contract-oriented programming in teams and help make problems much more manageable. I think a good OOP programmer will know where to draw the line without going crazy about everything needing to be a proper object.

There's no reason a high performance game should not be written in C++, just be mindful of too much indirection in critical loops.