If C++ is mainstream (it is) then complexity is clearly not an obstacle.
C++, if released today, would not result in the same user base.
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)