Scroll to navigation

std::indirectly_swappable(3) C++ Standard Libary std::indirectly_swappable(3)

NAME

std::indirectly_swappable - std::indirectly_swappable

Synopsis


Defined in header <iterator>
template< class I1, class I2 = I1 >


concept indirectly_swappable =
std::indirectly_readable<I1> &&
std::indirectly_readable<I2> &&
requires( const I1 i1, const I2 i2 )
{ (since C++20)
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.


Semantic requirements


I1 and I2 model indirectly_swappable only if all concepts it subsumes are modeled.


Equality preservation


Expressions declared in requires expressions of the standard library concepts are
required to be equality-preserving (except where stated otherwise).

See also


indirectly_readable specifies that a type is indirectly readable by applying
(C++20) operator *
(concept)
iter_swap swaps the values referenced by two dereferenceable objects
(C++20) (customization point object)

2024.06.10 http://cppreference.com