std::experimental::ranges:: Predicate
| Technical Specification | ||||
| Filesystem library (filesystem TS) | ||||
| Library fundamentals (library fundamentals TS) | ||||
| Library fundamentals 2 (library fundamentals TS v2) | ||||
| Library fundamentals 3 (library fundamentals TS v3) | ||||
| Extensions for parallelism (parallelism TS) | ||||
| Extensions for parallelism 2 (parallelism TS v2) | ||||
| Extensions for concurrency (concurrency TS) | ||||
| Extensions for concurrency 2 (concurrency TS v2) | ||||
| Concepts (concepts TS) | ||||
| Ranges (ranges TS) | ||||
| Reflection (reflection TS) | ||||
| Mathematical special functions (special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
| Core language concepts | |||||||||||||
| Object concepts | |||||||||||||
| Comparison concepts | |||||||||||||
| Callable concepts | |||||||||||||
|
|||||||||||||
| URNG concept | |||||||||||||
|
Défini dans l'en-tête
<experimental/ranges/concepts>
|
||
|
template
<
class
F,
class
...
Args
>
concept
bool
Predicate
=
|
(ranges TS) | |
Le concept
Predicate<F, Args...>
spécifie que
F
est un prédicat qui accepte des arguments dont les types et catégories de valeurs sont encodés par
Args...
, c'est-à-dire qu'il peut être invoqué avec ces arguments pour produire un résultat
Boolean
.
Notez que
RegularInvocable
requiert que l'invocation ne modifie ni l'objet appelable ni les arguments et soit préservatrice d'égalité.
Préservation de l'égalité
Une expression est préservatrice d'égalité si elle produit des résultats égaux pour des entrées égales.
- Les entrées d'une expression consistent en ses opérandes.
- Les sorties d'une expression consistent en son résultat et tous les opérandes modifiés par l'expression (le cas échéant).
Toute expression devant préserver l'égalité doit en outre être stable : deux évaluations d'une telle expression avec les mêmes objets d'entrée doivent produire des sorties égales en l'absence de toute modification explicite intervenant entre-temps sur ces objets d'entrée.