Я хочу, чтобы переместить определенный элемент от а до Ь:Перемещение объектов из одного Boost, ptr_container к другому
boost::ptr_vector<Foo> a, b;
// ...
b.push_back(a.release(a.begin() + i)));
Приведенный выше код не компилируется, так как функция релиз возвращает boost::ptr_container_detail::static_move_ptr<...>
, который не подходит для отодвигая.
Как мне продолжить?
EDIT: Я узнал, что возвращенный объект имеет
.get()
.release()
, который содержит необработанный указатель (что также может привести к некоторым проблемам безопасности исключений). Я бы предпочел не полагаться на недокументированные внутренние функции, поэтому не стесняйтесь делиться лучшими решениями ...
Спасибо, это решает проблему. :) – Tronic