Namensräume
Varianten
Aktionen

std::indirect_unary_predicate

Von cppreference.com
< cpp‎ | iterator
 
 
Iterator-Bibliothek
Iterator-Konzepte
Iterator-Primitive
Algorithmus-Konzepte und Hilfsprogramme
Indirekte aufrufbare Konzepte
indirect_unary_predicate
(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 I >

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

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

Das Konzept indirect_unary_predicate spezifiziert die Anforderungen an Algorithmen, die als Argumente unäre Prädikate 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.

[bearbeiten] Defect reports

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 eine der Anforderungen wurde im Hinblick auf std::iter_value_t<I>& definiert
was Projektionen falsch handhabte und zu Inkompatibilität mit dem 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 verlangte, dass F& predicate mit
std::iter_common_reference_t<I>
erfordert nicht