Interesting example on shared ownership using std::shared_ptr