boost::Unique_Ptr 对象列表

Posted

技术标签:

【中文标题】boost::Unique_Ptr 对象列表【英文标题】:List of boost::Unique_Ptr objects 【发布时间】:2010-10-07 08:08:34 【问题描述】:

为什么我不能这样做?

typedef boost::interprocess::unique_ptr<QueueList, QueueListDeletor> UQList;
typedef boost::intrusive::list<UQList> List;  // Compiler (VS 2003) complains 

QueueList 是一个派生自public boost::intrusive::list_base_hook&lt;&gt; 的类,使其成为侵入式链表的一部分。

我想使用 unique_ptr 在线程之间传递这个对象,并且当时只有 1 个单线程拥有这个对象的所有权。

编辑: 错误:

错误 C2039: 'pointer' : is not a member of 'boost::intrusive::detail::default_list_hook' 见'boost::intrusive::detail::default_list_hook'的声明 请参阅正在编译的类模板实例化 'boost::intrusive::list_impl' 的引用 和 [ 配置=boost::intrusive::listopt::value_traits,boost::intrusive::size_type::pack>::type,boost::intrusive::constant_time_size>::type>::size_type,true> ]

错误 C2039:“const_pointer”:不是“boost::intrusive::detail::default_list_hook”的成员 见'boost::intrusive::detail::default_list_hook'的声明

【问题讨论】:

【参考方案1】:

QueueList 可以派生自 list_base_hook,但 UQList 肯定不是。由于您尝试创建 UQList 的侵入式列表(这是一个 unique_ptr)而不是 QueueList 对象的侵入式列表,因此这不起作用。

【讨论】:

以上是关于boost::Unique_Ptr 对象列表的主要内容,如果未能解决你的问题,请参考以下文章

02uni-app v-for循环列表 v-if的使用

uni-app 172标签列表和标签用户列表

uni-app 172标签列表和标签用户列表

小程序项目开发-- 京东商城uni-app之商品列表页面 (下)

小程序项目开发-- 京东商城uni-app之商品列表页面 (上)

uni-app 实现数据列表(右带默认箭头)的功能(点击item 背景色改变)