Is it safe to publicly derived from shared_ptr? I don't see a virtual destructor. . .