C++ named requirements: RangeAdaptorClosureObject (since C++20)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Les objets de fermeture d'adaptateur de plage
sont des
FunctionObject
s
qui peuvent être appelés via l'opérateur pipe : si
C
est un objet de fermeture d'adaptateur de plage et
R
est une
range
, ces deux expressions sont
équivalentes
:
C(R) R | C
Deux objets de fermeture d'adaptateur de plage peuvent être enchaînés par operator | pour produire un autre objet de fermeture d'adaptateur de plage : si C et D sont des objets de fermeture d'adaptateur de plage, alors C | D produit un objet de fermeture d'adaptateur de plage E avec les propriétés suivantes :
- E stocke une copie de C et D , initialisée par initialisation directe non-liste à partir de std:: forward < decltype ( ( C ) ) > ( C ) et std:: forward < decltype ( ( D ) ) > ( D ) respectivement. Si une telle initialisation est invalide, C | D est également invalide.
-
Soient
c
et
d
les copies stockées (avec la même constance et catégorie de valeur que
E
), et
R
un objet
range, les expressions suivantes sont équivalentes :
d(c(R)) R | c | d E(R) R | E // R | (C | D)
Notes : operator ( ) n'est pas pris en charge pour les versions qualifiées volatile ou const-volatile des types de fermeture d'objets adaptateurs de plage.
Les objets dont le type est identique à l'un des objets suivants (en ignorant les qualifications cv) sont des objets de fermeture d'adaptateur de plage :
- objets adaptateurs de plage unaires,
|
(depuis C++23) |
- les résultats de la liaison des arguments de fin par les objets adaptateurs de plage, et
- les résultats de l'enchaînement de deux objets de fermeture d'adaptateur de plage par operator | .
Voir aussi
|
(C++23)
|
classe de base d'assistance pour définir un objet de fermeture d'adaptateur de plage
(modèle de classe) |