home | help
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 ap-
     plying
	(C++20) 	    operator *
			    (concept)
	iter_swap	    swaps the values referenced by  two  dereferenceable
     objects
	(C++20) 	    (customization point object)

http://cppreference.com 	   2024.06.10	    std::indirectly_swappable(3)

home | help