I want to move certain element from a to b:
boost::ptr_vector<Foo> a, b;
// ...
b.push_back(a.release(a.begin() + i)));
The above code does not compile because the release function returns boost::ptr_container_detail::static_move_ptr<...>
, which is not suitable for pushing back.
How should I proceed?
EDIT: I found out that the object returned has .get() .release()
that provides a raw pointer (that may also lead to some exception safety issues). I would, however, prefer not relying on undocumented internal functionality, so feel free to share any better solutions...