我想将某些元素从 a 移动到 b:
boost::ptr_vector<Foo> a, b;
// ...
b.push_back(a.release(a.begin() + i)));
上面的代码没有编译,因为release函数返回boost::ptr_container_detail::static_move_ptr<...>
,不适合推回。
我应该如何进行?
编辑:我发现返回的对象具有.get() .release()
,它提供了一个原始指针(这也可能导致一些异常安全问题)。但是,我宁愿不依赖未记录的内部功能,因此请随时分享任何更好的解决方案......