Namensräume
Varianten
Aktionen

std::experimental::ranges::Predicate

Von cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
Konzeptbibliothek
Kernsprachen-Konzepte
                              
Objektkonzepte
                              
                              
Vergleichskonzepte
Aufrufbare Konzepte
Predicate
                                        
                              
URNG-Konzept
 
Definiert in Header <experimental/ranges/concepts>
template< class F, class... Args >

concept bool Predicate =
    RegularInvocable<F, Args...> &&

    Boolean<std::result_of_t<F&&(Args&&...)>>;
(Ranges TS)

Das Konzept Predicate<F, Args...> spezifiziert, dass F ein Prädikat ist, das Argumente akzeptiert, deren Typen und Wertkategorien durch Args... kodiert sind, d.h. es kann mit diesen Argumenten aufgerufen werden, um ein Boolean-Ergebnis zu liefern.

Beachten Sie, dass RegularInvocable erfordert, dass der Aufruf weder das aufrufbare Objekt noch die Argumente verändert und gleichheitserhaltend ist.

[bearbeiten] Gleichheitserhaltung

Ein Ausdruck ist gleichheitserhaltend, wenn er bei gleichen Eingaben gleiche Ausgaben liefert.

  • Die Eingaben für einen Ausdruck bestehen aus seinen Operanden.
  • Die Ausgaben eines Ausdrucks bestehen aus seinem Ergebnis und allen von dem Ausdruck modifizierten Operanden (falls vorhanden).

Jeder Ausdruck, der gleichheitserhaltend sein muss, muss außerdem stabil sein: Zwei Auswertungen eines solchen Ausdrucks mit denselben Eingabeobjekten müssen gleiche Ausgaben liefern, solange keine explizite zwischenzeitliche Modifikation dieser Eingabeobjekte erfolgt.