Namespaces
Variants

std:: indirect_unary_predicate

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
indirect_unary_predicate
(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 I >

concept indirect_unary_predicate =
std:: indirectly_readable < I > &&
std:: copy_constructible < F > &&
std:: predicate < F & , /*indirect-value-t*/ < I >> &&

std:: predicate < F & , std:: iter_reference_t < I >> ;
(seit C++20)

Das Konzept indirect_unary_predicate spezifiziert Anforderungen für Algorithmen, die unäre Prädikate als ihre Argumente aufrufen. Der Hauptunterschied zwischen diesem Konzept und std::predicate besteht darin, dass es auf den Typ angewendet wird, auf den I verweist, und nicht auf I 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 eine der Anforderungen war definiert in Bezug auf std:: iter_value_t < I > &
was Projektionen falsch behandelte, was zu Inkompatibilität mit Prädikat F & führte
definiert in Bezug auf /*indirect-value-t*/ < I >
um solche Projektionen korrekt zu behandeln
P2997R1 C++20 indirect_unary_predicate erforderte F & zur Erfüllung von predicate mit
std:: iter_common_reference_t < I >
erfordert nicht