[alg.req.ind.swap] (original) (raw)

1

#

The indirectly_­swappable concept specifies a swappable relationship between the values referenced by two indirectly_­readable types.

template<class I1, class I2 = I1> concept indirectly_­swappable = indirectly_­readable<I1> && indirectly_­readable<I2> && requires(const I1 i1, const I2 i2) { ranges::iter_swap(i1, i1); ranges::iter_swap(i2, i2); ranges::iter_swap(i1, i2); ranges::iter_swap(i2, i1);};