首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >boost unique_ptr删除器

问boost unique_ptr删除器
EN

Stack Overflow用户
提问于 2010-10-06 22:47:09
回答 1查看 3K关注 0票数 5

如果我想创建一个QueueList类型的删除程序(一些自定义对象),我如何为它定义一个删除程序,或者已经有一个模板‘unique_ptr’我可以使用?

我想要一个unique_ptr,这样我就可以在线程之间安全地传输对象,而不需要在线程之间共享它。

编辑

代码语言:javascript
复制
boost::interprocess::unique_ptr<QueueList> LIST;  ///FAILS to COMPILE!!!

LIST mylist;

编译器: MS Visual Studio 2003

错误:

错误C2976:'boost::interprocess::unique_ptr‘:模板参数太少

错误C2955:'boost::interprocess::unique_ptr‘:使用类模板需要模板参数列表:请参见'boost::interprocess::unique_ptr’的声明

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-06 23:13:28

下面是一个简单的deleter类,它只对任何给定的对象调用delete:

代码语言:javascript
复制
template<typename T> struct Deleter {
    void operator()(T *p)
    {
        delete p;
    }
};

然后可以将其与unique_ptr一起使用,如下所示:

代码语言:javascript
复制
boost::interprocess::unique_ptr<QueueList, Deleter<QueueList> > LIST;
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3873750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档