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)
Definiert 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 )
{
ranges:: iter_swap ( i1, i1 ) ;
ranges:: iter_swap ( i1, i2 ) ;
ranges:: iter_swap ( i2, i1 ) ;
ranges:: iter_swap ( i2, i2 ) ;

} ;
(seit C++20)

Das Konzept indirectly_swappable spezifiziert eine Beziehung zwischen zwei Typen, die jeweils std::indirectly_readable modellieren, wobei deren referenzierte Typen ausgetauscht werden können.

Semantische Anforderungen

I1 und I2 modellieren indirectly_swappable nur, wenn alle davon subsumierten Konzepte modelliert sind.

Gleichheitserhaltung

Ausdrücke, die in requires expressions der Standardbibliothek-Konzepte deklariert werden, müssen equality-preserving sein (sofern nicht anders angegeben).

Siehe auch

spezifiziert, dass ein Typ indirekt lesbar ist durch Anwendung des Operators *
(Konzept)
(C++20)
vertauscht die Werte, auf die zwei dereferenzierbare Objekte verweisen
(Anpassungspunktobjekt)