As I implied in the opening, I think C++ is a terrible C replacement. What makes C good at what it does is its transparency and simplicity. The very opposite of what C++ is. C++ is a monstrosity, with magic everywhere.
I spent years with shared_ptr until I concluded they are not worth it. They just create more problems than they solve.
If you want to use stuff like shared_ptr I think you are better off with languages what have proper support for them built into the langauge such as Swift.
C++ isn't a better C than C, but I think Swift is actually a better C++ than C++. It does all the stuff modern C++ is about in a much cleaner fashion. For C++ I think C compatibility brings the language down. It doesn't elevate it. The weak type safety of C, makes it hard for C++ to come to its own and adds a lot of complexity to the language.