Obtaining a std::shared_ptr from this pointer

std::enable_shared_from_this enables you to get a valid std::shared_ptr instance to this, when all you have is this. Without it, you would have no way of getting a std::shared_ptr to this, unless you had already one as a member. class Y: public std:…