...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
namespace boost { template<typename I, typename O> O move(I, I, O); template<typename I, typename O> O move_backward(I, I, O); template<typename I, typename F> F uninitialized_move(I, I, F); template<typename I, typename F> F uninitialized_copy_or_move(I, I, F); template<typename I, typename F> F copy_or_move(I, I, F); }
This header implements macros to define movable classes and move-aware functions
BOOST_MOVE_IMPL_NO_COPY_CTOR_OR_ASSIGN(TYPE) BOOST_MOVABLE_BUT_NOT_COPYABLE(TYPE) BOOST_COPYABLE_AND_MOVABLE(TYPE) BOOST_RV_REF(TYPE) BOOST_RV_REF_BEG BOOST_RV_REF_END BOOST_COPY_ASSIGN_REF(TYPE) BOOST_FWD_REF(TYPE)
namespace boost { template<typename T> struct has_move_emulation_enabled; }
namespace boost { template<typename It> class move_iterator; template<typename C> class back_move_insert_iterator; template<typename C> class front_move_insert_iterator; template<typename C> class move_insert_iterator; template<typename It> move_iterator< It > make_move_iterator(const It &); template<typename C> back_move_insert_iterator< C > back_move_inserter(C &); template<typename C> front_move_insert_iterator< C > front_move_inserter(C &); template<typename C> move_insert_iterator< C > move_inserter(C &, typename C::iterator); }
A general library header that includes the rest of top-level headers.
namespace boost { template<typename T> struct has_trivial_destructor_after_move; template<typename T> struct has_nothrow_move; }
namespace boost { template<typename T> struct enable_move_utility_emulation; template<typename T> rvalue_reference move(input_reference); template<typename T> output_reference forward(input_reference); }