Namensräume
Varianten
Aktionen

std::indirect_equivalence_relation

Von cppreference.com
< cpp‎ | iterator
 
 
Iterator-Bibliothek
Iterator-Konzepte
Iterator-Primitive
Algorithmus-Konzepte und Hilfsprogramme
Indirekte aufrufbare Konzepte
indirect_equivalence_relation
(C++20)
Gemeinsame Algorithmus-Anforderungen
(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 F, class I1, class I2 = I1 >

concept indirect_equivalence_relation =
    std::indirectly_readable<I1> &&
    std::indirectly_readable<I2> &&
    std::copy_constructible<F> &&
    std::equivalence_relation
        <F&, /*indirect-value-t*/<I1>, /*indirect-value-t*/<I2>> &&
    std::equivalence_relation
        <F&, /*indirect-value-t*/<I1>, std::iter_reference_t<I2>> &&
    std::equivalence_relation
        <F&, std::iter_reference_t<I1>, /*indirect-value-t*/<I2>> &&
    std::equivalence_relation

        <F&, std::iter_reference_t<I1>, std::iter_reference_t<I2>>;
(seit C++20)

Das Konzept indirect_equivalence_relation spezifiziert Anforderungen an Algorithmen, die Äquivalenzrelationen als Argumente aufrufen. Der Hauptunterschied zwischen diesem Konzept und std::equivalence_relation besteht darin, dass es auf die Typen angewendet wird, auf die sich I1 und I2 beziehen, anstatt auf I1 und I2 selbst.

[bearbeiten] Fehlerberichte

Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
P2609R3 C++20 einige Anforderungen wurden in Bezug auf std::iter_value_t<I>& definiert
die Projektionen falsch behandelten, was zu Inkompatibilität mit der Äquivalenzrelation F& führte
definiert in Bezug auf /*indirect-value-t*/<I>
um solche Projektionen korrekt zu behandeln
P2997R1 C++20 indirect_equivalence_relation erforderte, dass F& mit
std::iter_common_reference_t<I>
erfordert nicht