Я перемещаю старый код на С++ 14, он использовал устаревший auto_ptr и хорошо работал с boost:ptr_map, вы могли бы сделать:
auto_ptr<Foo> foo(new Foo);
boost:map_ptr<int, Foo> m;
m.insert(5, foo);
Теперь, заменив этот auto_ptr на unique_ptr, он не компилируется:
unique_ptr<Foo> foo(new Foo);
boost:map_ptr<int, Foo> m;
m.insert(5, foo); // Does not compile
m.insert(5, move(foo)); // Does not compile either,
// this should be the right thing to do
m.insert(5, move.release()); // Does compile, but isn't exception safe
API map_ptr еще не обновлен?
Редактировать на основе ответов, используя карту unique_ptr, в моем случае это не лучший вариант, потому что это требует переписывания большого количества кода. Я очень хотел заставить его работать с map_ptr, я имею дело с каким-то старым кодом и хочу внести минимум изменений.