std::experimental::ranges:: View
From cppreference.net
<
cpp
|
experimental
|
ranges
|
Défini dans l'en-tête
<experimental/ranges/range>
|
||
|
template
<
class
T
>
concept bool View = Range < T > && Semiregular < T > && /* view-predicate<T> */ ; |
(ranges TS) | |
|
template
<
class
T
>
struct enable_view { } ; |
(ranges TS) | |
|
struct
view_base
{
}
;
|
(ranges TS) | |
Le concept
View<T>
spécifie que la plage semirégulière
T
possède des opérations de copie, de déplacement et d'assignation à temps constant.
La partie /* view-predicate<T> */ du concept est déterminée comme suit :
- si le qualified-id ranges:: enable_view < T > :: type est valide et désigne un type, ranges:: enable_view < T > :: type :: value ;
- sinon, si std:: is_base_of_v < ranges:: view_base , T > est true , true ;
-
sinon, si
Test une spécialisation de std::initializer_list , std::set , std::multiset , std::unordered_set , ou std::unordered_multiset , false ; -
sinon, si à la fois
Tetconst TsatisfontRangeet ranges :: reference_t < ranges:: iterator_t < T >> n'est pas du même type que ranges :: reference_t < ranges:: iterator_t < const T >> , false ; - sinon, true .