پاسخ داده شده: export اشاره گر هوشمند از کتابخانه c++
شما نمی تونید اشاره گر معمولی را به std::shared_ptr کست کنید برای اینکار بهتر که اطلاعات را توی std::map نگهداری و دوباره بهش دسترسی داشته باشید.
static std::map<void*,std::shared_ptr<Foo>> instances; void* func1(){ auto instance1 = std::make_shared<Foo>(); instances[instance1.get()] = instance1; return static_cast<void*>(instance1.get()); } void func2(void* instance1_p){ std::shared_ptr<Foo> instance1 = instances[instance1_p]; }