Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ boost唯一删除器_C++_Boost - Fatal编程技术网

C++ boost唯一删除器

C++ boost唯一删除器,c++,boost,C++,Boost,如果我想创建一个QueueList类型的唯一\u ptr(一些自定义对象),我应该如何为它定义一个deletor,或者是否已经有一个模板“deletor”可以使用 我想要一个唯一的\u ptr,这样我就可以在线程之间安全地传输对象,而不用在线程之间共享它 编辑 boost::进程间::唯一\u ptr列表///编译失败!!! 列出我的清单; 编译器:MS Visual Studio 2003 错误: 错误C2976:'boost::进程间::unique_ptr':模板参数太少 错误C2955

如果我想创建一个
QueueList
类型的
唯一\u ptr
(一些自定义对象),我应该如何为它定义一个deletor,或者是否已经有一个模板“deletor”可以使用

我想要一个
唯一的\u ptr
,这样我就可以在线程之间安全地传输对象,而不用在线程之间共享它

编辑

boost::进程间::唯一\u ptr列表///编译失败!!!
列出我的清单;
编译器:MS Visual Studio 2003

错误:

错误C2976:'boost::进程间::unique_ptr':模板参数太少

错误C2955:“boost::进程间::唯一的\u ptr”:使用类模板需要模板参数列表
:请参见“boost::interprocess::unique_ptr”的声明。

这里有一个简单的deleter类,它只对任何给定对象调用delete:

template<typename T> struct Deleter {
    void operator()(T *p)
    {
        delete p;
    }
};
模板结构删除器{
void运算符()(T*p)
{
删除p;
}
};
然后,您可以将其与独特的ptr一起使用,如下所示:

boost::interprocess::unique_ptr<QueueList, Deleter<QueueList> > LIST;
boost::进程间::唯一\u ptr列表;

如何分配QueueList对象?如何删除它?考虑提供示例代码。我们可以拥有编译器名称/版本以及确切的错误吗?除了对非宏使用所有大写之外,我看不出有任何错误。这不是默认的删除器吗?嗯。。。看起来boost没有默认的删除程序。
boost::interprocess::unique_ptr<QueueList, Deleter<QueueList> > LIST;