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-thworing move construction and assignment should specialize this trait to obtain some performance improvements.