std::experimental::ranges:: View
From cppreference.net
<
cpp
|
experimental
|
ranges
|
Определено в заголовочном файле
<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) | |
Концепт
View<T>
специфицирует, что полурегулярный диапазон
T
имеет операции копирования, перемещения и присваивания с постоянной сложностью.
Часть концепции /* view-predicate<T> */ определяется следующим образом:
- если квалифицированный идентификатор ranges:: enable_view < T > :: type корректен и обозначает тип, ranges:: enable_view < T > :: type :: value ;
- иначе, если std:: is_base_of_v < ranges:: view_base , T > равно true , true ;
-
иначе, если
Tявляется специализацией std::initializer_list , std::set , std::multiset , std::unordered_set , или std::unordered_multiset , false ; -
иначе, если и
Tиconst TудовлетворяютRangeи ranges :: reference_t < ranges:: iterator_t < T >> не является тем же типом, что и ranges :: reference_t < ranges:: iterator_t < const T >> , false ; - иначе, true .