std::experimental::ranges::Predicate
| Definiert in Header <experimental/ranges/concepts> |
||
| template< class F, class... Args > concept bool Predicate = |
(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.