std::swap declared as follows:
template <class T> void swap (T& a, T& b) noexcept (is_nothrow_move_constructible<T>::value && is_nothrow_move_assignable<T>::value);
If you disable exceptions in my program (for example, using -fno-exceptions for g ++ ), std::swap use move operations for my custom types if they are enabled with the move option, whether they are unoccupied or not?
EDIT: next question:
Having understood that std :: swap will always use moves if I have their type, my real question is what happens to traits like is_nothrow_move_assignable<> ?
Will std::vector always use moves when redistributing if my types have noexcept(true) move operations?
source share