std::shared_ptr<A> a = std::make_shared<A>(); auto c = (char*)&a; std::shared_ptr<A> s = *(std::shared_ptr<A>*)(c);