Here\'s a notable video (Stop teaching C) about that paradigm change to take in teaching the c++ language.
And an also notable blog post
3 common examples where you have to use new instead of make_...:
make_unique in that case).In all those cases however, you'd directly wrap the returned pointer into a smart pointer.
2-3 (probably not so common) examples, where you wouldn't want/can't to use smart pointers:
create_my_object or implement a callback that has to take a void*)std::variant> instead, but only if you are ok with the the information about the ownership being stored in the variant and is you accept the overhead of checking which member is active for each access. Of course this is only relevant if you can't/don't want to afford the overhead of having two pointers (one owning and one non-owning)