...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::move_upd::unique_ptr_data<P, D, false>
// In header: <boost/move/unique_ptr.hpp> template<typename P, typename D> struct unique_ptr_data<P, D, false> : private D { // types typedef deleter_types< D >::deleter_arg_type1 deleter_arg_type1; typedef deleter_types< D >::del_ref del_ref; typedef deleter_types< D >::del_cref del_cref; // construct/copy/destruct unique_ptr_data() noexcept; explicit unique_ptr_data(P) noexcept; unique_ptr_data(P, deleter_arg_type1) noexcept; template<typename U> unique_ptr_data(P, U &&) noexcept; unique_ptr_data(const unique_ptr_data &); unique_ptr_data & operator=(const unique_ptr_data &); // public member functions del_ref deleter() noexcept; del_cref deleter() const noexcept; // public data members P m_p; };