The std::iter_swap is a convenient shorthand for indirectly swapping values, i.e. swapping the values pointed to by two iterators.
While the original version std::iter_swap is only intended for iterators, the range C++20 version std::ranges::iter_swap can work with any indirectly movable type and supports customization through ADL.
Compiler Explorer link: https://compiler-explorer.com/z/58P96cPdM