Allows for using a non-templated destructor in a unique_ptr, able to destroy an upcasted pointer too. At the moment, we just introduce an extra dependency on Boost.Intrustive; we should report this bug upstream with a MWE. --- boost/move/detail/unique_ptr_meta_utils.hpp.orig 2014-11-05 13:36:28.212289350 +0100 +++ boost/move/detail/unique_ptr_meta_utils.hpp 2014-11-05 14:31:35.360395529 +0100 @@ -14,6 +14,8 @@ #ifndef BOOST_MOVE_UNIQUE_PTR_DETAIL_META_UTILS_HPP #define BOOST_MOVE_UNIQUE_PTR_DETAIL_META_UTILS_HPP +#include + #include //for std::size_t //Small meta-typetraits to support move @@ -383,7 +385,7 @@ template ::value> struct pointer_type_imp { - typedef typename D::pointer type; + typedef typename boost::intrusive::pointer_traits::template rebind_pointer::type type; }; template