When would someone use std::enable_shared_from_this
std::enable_shared_from_this
[https://en.cppreference.com/w/cpp/memory/enable_shared_from_this] allows a
class to have a valid shared_ptr of this. Simply adding a member function that
returns shared_ptr