Namensräume
Varianten
Aktionen

std::indirectly_swappable

Von cppreference.com
< cpp‎ | iterator
 
 
Iterator-Bibliothek
Iterator-Konzepte
Iterator-Primitive
Algorithmus-Konzepte und Hilfsprogramme
Indirekte aufrufbare Konzepte
Gemeinsame Algorithmus-Anforderungen
indirectly_swappable
(C++20)
(C++20)
(C++20)
(C++20)
Dienstprogramme
(C++20)
Iterator-Adapter
Bereichszugriff
(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 die von ihnen referenzierten Typen vertauscht werden können.

[bearbeiten] Semantische Anforderungen

I1 und I2 modellieren indirectly_swappable nur, wenn alle Konzepte, die es umfasst, modelliert werden.

[bearbeiten] Gleichheitserhaltung

Ausdrücke, die in requires-Ausdrücken der Standardbibliothekskonzepte deklariert sind, müssen gleichheitserhaltend sein (sofern nicht anders angegeben).

[bearbeiten] Siehe auch

spezifiziert, dass ein Typ durch Anwendung des Operators * indirekt lesbar ist
(Konzept) [bearbeiten]
(C++20)
tauscht die von zwei dereferenzierbaren Objekten referenzierten Werte
(Customization-Punkt-Objekt)[bearbeiten]