boost::has_nothrow_move
// In header: <boost/move/move.hpp> template<typename T> struct has_nothrow_move { };
By default this traits returns false. Classes with non-throwing move constructor and assignment should specialize this trait to obtain some performance improvements.