#
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
)
;
}
;