std::indirectly_swappable
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Iterator library
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)(C++20)(C++23)(C++20)(C++20)
(deprecated in C++17)
(C++20)
(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++14)
(C++11)
(C++11)
(C++20)(C++20)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++23)
(C++23)
(C++23)
(C++23)
(C++23)
(C++11)(C++14)
(C++14)(C++14)
Defined in header
<iterator>
template< class I1, class I2 = I1 >
(since C++20)
concept indirectly_swappable =
std::indirectly_readable <I1> &&
std::indirectly_readable <I2> &&
requires( const I1 i1, const I2 i2 )
{
ranges::iter_swap (i1, i1);
ranges::iter_swap (i1, i2);
ranges::iter_swap (i2, i1);
ranges::iter_swap (i2, i2);
The concept indirectly_swappable
specifies a relationship between two types respectively modelling std::indirectly_readable , where their referenced types can be swapped.
[edit] Semantic requirements
I1
and I2
model indirectly_swappable
only if all concepts it subsumes are modeled.
[edit] Equality preservation
Expressions declared in requires expressions of the standard library concepts are required to be equality-preserving (except where stated otherwise).