I know that std::swap
requires MoveAssignable (which iterswap does not) but why does it require something different than std::iterswap
when they really are almost identical? I mean, I cannot see why they have different requirements - what makes up the need for this difference?
I have read this and this, however, they did not yield an answer to this question (at least not to me).