gpt4 book ai didi

c++ - 是否有可以配置为在销毁时不删除的 boost 智能指针类?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:59:08 25 4
gpt4 key购买 nike

我有一个智能指针列表。我希望这些智能指针中的一些充当常规指针,这意味着它们只是对实例的引用并且不参与其释放。例如,它们可能指向分配在堆栈上的实例。列表中的其他智能指针应该充当常规的 boost::shared_ptr。

类的外观如下:

template<class T> smart_ptr {
private:
T *p;
boost::shared_ptr<T> sp;
public:
smart_ptr(T *p): p(p), shared(0) { } // p will not be deleted
smart_ptr(boost::shared_ptr<T> &sp): p(sp.get()), sp(sp) { }
T *get() const { return p; }
}

如果有一个 boost 类可以做到这一点,我宁愿使用它而不是自己编写一个类。似乎没有,还是我弄错了?

最佳答案

shared_ptr 的一个构造函数采用析构函数方法,您可以传入一个空仿函数。

Using Custom Deallocator in boost::shared_ptr

(你只需要一个空函数。)

关于c++ - 是否有可以配置为在销毁时不删除的 boost 智能指针类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1152497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com