Namespaces
Variants

std:: indirectly_swappable

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
indirectly_swappable
(C++20)
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
Definido en el encabezado <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 )
{
ranges:: iter_swap ( i1, i1 ) ;
ranges:: iter_swap ( i1, i2 ) ;
ranges:: iter_swap ( i2, i1 ) ;
ranges:: iter_swap ( i2, i2 ) ;

} ;
(desde C++20)

El concepto indirectly_swappable especifica una relación entre dos tipos que modelan respectivamente std::indirectly_readable , donde sus tipos referenciados pueden intercambiarse.

Requisitos semánticos

I1 y I2 modelan indirectly_swappable solo si todos los conceptos que subsume son modelados.

Preservación de la igualdad

Las expresiones declaradas en las requires expressions de los conceptos de la biblioteca estándar deben ser equality-preserving (excepto cuando se indique lo contrario).

Véase también

especifica que un tipo es indirectamente legible aplicando el operador *
(concept)
(C++20)
intercambia los valores referenciados por dos objetos desreferenciables
(customization point object)