Hi, There is a problem with move-assignment constructor in boost::movelib::unique_ptr when used with a pair of base/derived classes in C++98/03 mode [1] (uncomment the code to see the compiler error). Is it a known issue? Or a limitation of the emulation? I discovered the issue when I wanted to use boost::movelib::make_shared in an answer to a question on StackOverflow [2], i.e. return boost::movelib::make_shared<Derived>(); Where the return value is boost::movelib::unique_ptr<Base>, but unfortunately because of this issue, in C++03 we need to use: return unique_ptr<Base> x(new Derived()); I can create a ticket if that is desired. Nevertheles, thanks for boost::movelib::unique_ptr anyway! BTW, note how the appearance of boost::movelib::unique_ptr makes the most voted answer on the question [3] invalid. This is where my answer comes in. Best regards, Adam Romanek [1] http://melpon.org/wandbox/permlink/8Rvk2g7LJ0Ey0BQL [2] http://stackoverflow.com/a/28193068/1776942 [3] http://stackoverflow.com/q/2953530/1776942