Namespaces
Variants

std:: indirect_strict_weak_order

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
indirect_strict_weak_order
(C++20)
Common algorithm requirements
(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 im Header <iterator>
template < class F, class I1, class I2 = I1 >

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

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

Das Konzept indirect_strict_weak_order spezifiziert Anforderungen für Algorithmen, die strikte schwache Ordnungen als Argumente aufrufen. Der Hauptunterschied zwischen diesem Konzept und std::strict_weak_order besteht darin, dass es auf die Typen angewendet wird, auf die I1 und I2 verweisen, und nicht auf I1 und I2 selbst.

Fehlerberichte

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

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
P2609R3 C++20 einige Anforderungen wurden definiert in Bezug auf
std:: iter_value_t < I > & was Projektionen falsch behandelte
was zu Inkompatibilität mit strikter schwacher Ordnung führte F &
definiert in Bezug auf
/*indirect-value-t*/ < I > um
solche Projektionen korrekt zu behandeln
P2997R1 C++20 indirect_strict_weak_order erforderte, dass F &
strict_weak_order mit std:: iter_common_reference_t < I > erfüllt
erfordert nicht