Educate me, pkease: why no new or delete? Does C++ now discourage heap allocation or is the common practice to use smart pointers, etc.?
Also a lot can be done with things that are on the heap but act as local variables.
[1] You probably don't actually need a shared_ptr and if you do then it won't stop you from creating memory leaks.