C++ is the most complex language on the planet, in my opinion, if one is serious about mastering it. I spent 6 to 10 years on it, and I would say I am still at mid-level capability.
Another issue with C++ is that a lot of experience is required to organize and construct a project so that it can be understood and maintained by others in the future, as spaghetti code is what C++ tends towards in the long run. It takes a lot of experience to avoid it. I found that the more I learned about C++, the less I used objects with inheritance and the more I used composition with template metaprogramming. Using templates with C++ leads to the ultimate destination of thinking in terms of types; in my view a far stronger way to frame solutions to programming problems. Using Nim as first language allows one to bypass all this evolution in thinking, because Araq has already built a language that gets you there much faster and almost painlessly.