【发布时间】:2014-08-06 14:48:23
【问题描述】:
我将 stl list 用作 boost::shared_ptr。例如:
#typedef boost::shared_ptr< std::list<SomeStruct> > list_ptr;
list_ptr list;
list_ptr otherlist;
现在我想将列表合并到另一个列表中。默认的 stl 行为是 list.merge(otherlist)。但是只要我使用shared_ptr,编译器就会抱怨它(没有数学函数)
现在我想通了,那
list.merge(*(otherlist.get())
编译。
问题:这是必须完成的方式还是只是我愚蠢的解决方法?
【问题讨论】:
-
你试过
list.merge(*otherlist)吗?通常,您使用*来取消引用指针,无论是智能的还是其他的。 -
是的,但不是 list->merge(*list2)
-
list是指list_ptr? -
是的。我编辑了上面的问题。谢谢。