>std::shared_ptr means I don't have to manage any memory; no more new/delete! (But try as I might to understand std::unique_ptr, I'm just not there yet.)
Eh? unique_ptr is just a scoped resource. You create a thing (or take ownership of said thing) and it gets deleted when it goes out of scope. Am I missing something?
It should be the first thing you reach for if you need to dynamically create an object (certainly way before shared_ptr).