boost :: Unique_Ptr对象列表

时间:2010-10-07 08:08:34

标签: c++ boost unique-ptr

为什么我不这样做?

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:'指针':不是'boost :: intrusive :: detail :: default_list_hook'的成员         看到'boost :: intrusive :: detail :: default_list_hook'的声明         请参阅正在编译的类模板实例化'boost :: intrusive :: list_impl'的引用         同         [             配置=升压::侵入:: listopt :: value_traits,升压::侵入:: SIZE_TYPE ::包&GT; ::类型,升压::侵入:: constant_time_size&GT; ::类型&GT; :: size_type的,真&gt;         ]

错误C2039:'const_pointer':不是'boost :: intrusive :: detail :: default_list_hook'的成员         请参阅'boost :: intrusive :: detail :: default_list_hook'

的声明

1 个答案:

答案 0 :(得分:2)

QueueList可能来自list_base_hook,但UQList肯定不是。由于您尝试创建UQList的入侵列表(这是一个unique_ptr)而不是QueueList对象的侵入列表,这将无效。