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;