c++ - Upgradeable pointer (unique_ptr -> shared_ptr) -
i'm told shared_ptr slower unique_ptr, should strive use unique_ptr's when possible. have potential use case 1 object have single owner majority of time, may have multiple owners in scenarios. in case, there sort of implementation of unique_ptr can upgraded shared_ptr when needed instead of having declared shared_ptr in first place?
ie instead of using shared_ptr, more beneficial if used following if case of upgrading rare, or there pitfall i'm not seeing here?
class upgrade_ptr<t> { shared_ptr<t> shared_; unique_ptr<t> unique_; upgrade_ptr(t obj) { unique_ = unique_ptr<t>(obj); } shared_ptr<t> share() { if (shared_ == nullptr) { shared_ = shared_ptr<t>(unique_); } return shared_; } }
Comments
Post a Comment