So far my impression is that they are making things more complicated by adding unnecessary fancy features.
Quite the opposite actually.
A lot of work in C++ has been around smoothing out rough edges.
Take, for example, unique_ptr, It was added because they found that people very frequently mishandled pointers while having very consistent expectations about how long the memory should live. unique_ptr solves a very common usage problem while providing protection.
nullptr solves the problem the NULL was very often just hardcoded to 0. The assumption, though, that NULL == 0 causes security issues, particular in kernels and embedded systems. nullptr removes that assumption entirely.
auto makes doing the right thing much easier. Ever try iterating a vector? It is quite painful without auto because the type declaration is a mile long. Yet using the iterator is both more flexible and safer than doing index calculations.
There are numerous cases like this where the C++ type declarations are too long for things where the type is obvious. Auto solves those problems.
Lambdas provide better composition features to the language. Yes they are complex, but a good list comprehension is much easier to grok than mile long if statements with huge for loops.
New libraries like "thread" add basic functionality which most expect. It makes it much easier to do things in a cross platform manner since it is part of language.
new keywords like final and override are really nice to have. It makes the compiler break when you expect something is overridden and allows for better communication of intent.
This is all assuming that you were taught C++03 6 years ago. It is unfortunately rare for people to teach "modern" c++.
"Modern" C++ is practically a different language from C++03, but it is for the better.
However, if this is too much, there's always rust