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<>
的类,使其成为侵入式链表的一部分。
我想使用 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 对象列表的主要内容,如果未能解决你的问题,请参考以下文章
小程序项目开发-- 京东商城uni-app之商品列表页面 (下)