std::ranges::concat_view<Views...>:: iterator <Const>:: satisfy , prev , advance-fwd , advance-bwd
Las siguientes plantillas de funciones miembro solo de exposición simplifican la descripción.
Cada plantilla de función auxiliar tiene un parámetro de plantilla constante de tipo std::size_t .
-
Si el nombre del parámetro de plantilla es
N
, el argumento de plantilla siempre es
it_ . index ( ) . -
Si el nombre del parámetro de plantilla es
I
, el argumento de plantilla puede ser cualquier valor
std::size_t
en
[ 0 ,sizeof... ( Views )).
Sin embargo, el argumento de plantilla podría no ser una constante en tiempo de compilación, por lo tanto el efecto real de
helper
<
non_const
>
(
/* arguments */
)
es similar a
if
(
non_const
==
0
)
helper
<
0
>
(
/* arguments */
)
;
else
if
(
non_const
==
1
)
helper
<
1
>
(
/* arguments */
)
;
/* other indices */
else
if
(
non_const
==
(
sizeof...
(
Views
)
-
1
)
)
helper
<
sizeof...
(
Views
)
-
1
>
(
/* arguments */
)
;
.
Contenidos |
Plantillas auxiliares
Plantillas auxiliares mini
|
template
<
std::
size_t
N
>
constexpr auto /*get-iter*/ ( ) ; |
(1) | ( solo para exposición* ) |
|
template
<
std::
size_t
I
>
constexpr auto /*get-view*/ ( ) ; |
(2) | ( solo para exposición* ) |
|
template
<
std::
size_t
I
>
constexpr auto /*get-begin*/ ( ) ; |
(3) | ( solo para exposición* ) |
|
template
<
std::
size_t
I
>
constexpr auto /*get-end*/ ( ) ; |
(4) | ( solo para exposición* ) |
|
template
<
std::
size_t
N
>
constexpr auto /*to-underlying-diff-type*/ ( difference_type value ) ; |
(5) | ( solo para exposición* ) |
Las mini plantillas auxiliares simplifican la descripción de las principales plantillas auxiliares y funciones miembro. No están incluidas en los documentos estándar de C++.
it_
.
concat_view
.
concat_view
padre.
get-view
<
I
>
(
)
)
.
concat_view
padre.
get-view
<
I
>
(
)
)
.
base-iter
>>>
(
value
)
.
std::ranges::concat_view:: iterator :: satisfy <N>
|
template
<
std::
size_t
N
>
constexpr void /*satisfy*/ ( ) ; |
( solo para exposición* ) | |
Ajusta la posición actual (global) de
it_
.
std::ranges::concat_view:: iterator :: prev <N>
|
template
<
size_t N
>
constexpr void /*prev*/ ( ) ; |
( solo para exposición* ) | |
Mueve
it_
a la posición (global) anterior.
std::ranges::concat_view:: iterator :: advance-fwd <N>
|
template
<
size_t N
>
constexpr
void
/*advance-fwd*/
(
difference_type offset,
|
( solo para exposición* ) | |
Avanza la posición (global) actual step pasos hacia adelante.
-
Si
N
es
sizeof...
(
Views
)
-
1
, equivalente a
get-iter < N > ( ) + =to-underlying-diff-type ( steps ) ; . -
De lo contrario, equivalente a
auto
n_size
=
ranges::
distance
(
get-view < N > ( ) ) ) ;
if ( offset + steps < n_size )
get-iter < N > ( ) + =to-underlying-diff-type ( steps ) ;
else
{
it_ . template emplace < N + 1 > (get-begin < N + 1 > ( ) ) ;
advance-fwd < N + 1 > ( 0 , offset + steps - n_size ) ;
} .
Parámetros
| offset | - |
el desplazamiento de la posición (global) actual desde el inicio del rango al que
it_
se refiere actualmente
|
| steps | - | el número de pasos a avanzar hacia adelante |
std::ranges::concat_view:: iterator :: advance-bwd <N>
|
template
<
size_t N
>
constexpr
void
/*advance-bwd*/
(
difference_type offset,
|
( solo para exposición* ) | |
Avanza la posición actual (global) steps pasos hacia atrás.
-
Si
N
es
0
, equivalente a
get-iter < N > ( ) - =to-underlying-diff-type ( steps ) ; . -
De lo contrario, equivalente a
if
(
offset
>=
steps
)
get-iter < N > ( ) - =to-underlying-diff-type ( steps ) ;
else
{
auto prev_size = ranges:: distance (get-view < N - 1 > ( ) ) ;
it_ . template emplace < N - 1 > (get-end < N - 1 > ( ) ) ;
advance-bwd < N - 1 > ( prev_size, steps - offset ) ;
} .
Parámetros
| offset | - |
el desplazamiento de la posición actual (global) desde el inicio del rango al que
it_
se refiere actualmente
|
| steps | - | el número de pasos a avanzar hacia atrás |