小编Ahi*_*iya的帖子

如何防止删除unique_ptr的px.get()

在boost.org网站上,我看到了一个阻止对shared_ptr删除px.get()的示例(http://www.boost.org/doc/libs/1_51_0/libs/smart_ptr/sp_techniques.html#preventing_delete).

这是一个很好的技术,我想在C++ 11中使用std :: unique_ptr来应用它,并且经过一段时间的工具后,我无法让他们的示例使用std :: unique_ptr.

是否可以防止在std :: unique_ptr上调用删除px.get()?

以下是来自boost.org网站的代码,显示了如何防止删除px.get:

class X
{
private:

    ~X();

    class deleter;
    friend class deleter;

    class deleter
    {
    public:

        void operator()(X * p) { delete p; }
    };

public:

    static shared_ptr<X> create()
    {
        shared_ptr<X> px(new X, X::deleter());
        return px;
    }
};
Run Code Online (Sandbox Code Playgroud)

c++ c++11

7
推荐指数
1
解决办法
1256
查看次数

标签 统计

c++ ×1

c++11 ×1