Use std::swap to do a swap, as johannes-shaub recommends. But as of C++17, what might also be called multiple assignment or tuple unpacking is achievable with structured bindings.