std::experimental::ranges:: View
From cppreference.net
<
cpp
|
experimental
|
ranges
|
Definido en el encabezado
<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) | |
El concepto
View<T>
especifica que el rango semirregular
T
tiene operaciones de copia, movimiento y asignación de tiempo constante.
La /* view-predicate<T> */ parte del concepto se determina de la siguiente manera:
- si el identificador-calificado ranges:: enable_view < T > :: type es válido y denota un tipo, ranges:: enable_view < T > :: type :: value ;
- de lo contrario, si std:: is_base_of_v < ranges:: view_base , T > es true , true ;
-
de lo contrario, si
Tes una especialización de std::initializer_list , std::set , std::multiset , std::unordered_set , o std::unordered_multiset , false ; -
de lo contrario, si tanto
Tcomoconst TsatisfacenRangey ranges :: reference_t < ranges:: iterator_t < T >> no es el mismo tipo que ranges :: reference_t < ranges:: iterator_t < const T >> , false ; - de lo contrario, true .