Pretty sure C++ is mainstream because of C and its own earlier versions, so regardless of the complex mess it became now.
C++ is an exercise in trying to make one language do everything and support every paradigm. The explosion of new languages recently shows that that approach is not winning. IMO because it inevitably means a leaky abstraction over a more complicated language, and lots of discipline to avoid the leaky areas. (JS seems to be edging in the same direction, although they have the excuse that browser support for alternate languages is still limited)