std::ranges::cartesian_product_view<First, Vs...>:: iterator <Const>:: next , std::ranges::cartesian_product_view<First, Vs...>:: iterator <Const>:: prev , std::ranges::cartesian_product_view<First, Vs...>:: iterator <Const>:: distance_from
Table des matières |
std::ranges::cartesian_product_view:: iterator :: next
|
template
<
std::
size_t
N
=
sizeof...
(
Vs
)
>
constexpr void /*next*/ ( ) ; |
(depuis C++23)
( exposition uniquement* ) |
|
Si appelé avec le paramètre template par défaut, génère récursivement l'élément suivant (le tuple d'itérateurs) dans
cartesian_product_view
.
Soit
current_
le tuple sous-jacent d'itérateurs. Équivalent à :
auto& it = std::get<N>(current_); ++it; if constexpr (N > 0) { if (it == ranges::end(std::get<N>(parent_->bases_))) { it = ranges::begin(std::get<N>(parent_->bases_)); next<N - 1>(); } }
Utilisé dans les fonctions membres non statiques suivantes :
-
ranges
::
cartesian_product_view
::
operator+
std::ranges::cartesian_product_view:: iterator :: prev
|
template
<
std::
size_t
N
=
sizeof...
(
Vs
)
>
constexpr void /*prev*/ ( ) ; |
(depuis C++23)
( exposition uniquement* ) |
|
Si appelé avec le paramètre template par défaut, génère récursivement l'élément précédent (le tuple d'itérateurs) dans
cartesian_product_view
.
Soit
current_
le tuple sous-jacent d'itérateurs. Équivalent à :
auto& it = std::get<N>(current_); if constexpr (N > 0) { if (it == ranges::begin(std::get<N>(parent_->bases_))) { it = /*cartesian-common-arg-end*/(std::get<N>(parent_->bases_)); prev<N - 1>(); } } --it;
Utilisé dans les fonctions membres non statiques suivantes :
-
ranges
::
cartesian_product_view
::
operator-
std::ranges::cartesian_product_view:: iterator :: distance_from
|
template
<
class
Tuple
>
constexpr
difference_type
|
(depuis C++23)
( exposition uniquement* ) |
|
Retourne la "distance" (c'est-à-dire le nombre de "sauts") entre deux itérateurs .
Soit :
-
parent_le pointeur sous-jacent verscartesian_product_view -
/*scaled-size*/
(
N
)
soit :
- le produit de static_cast < difference_type > ( ranges:: size ( std :: get < N > ( parent_ - > bases_ ) ) ) et /*scaled-size*/ ( N + 1 ) si N ≤ sizeof... ( Vs ) , sinon
- static_cast < difference_type > ( 1 ) ;
- /*scaled-distance*/ ( N ) soit le produit de static_cast < difference_type > ( std :: get < N > ( current_ ) - std :: get < N > ( t ) ) et /*scaled-size*/ ( N + 1 ) ;
- /*scaled-sum*/ soit la somme de /*scaled-distance*/ ( N ) pour tout entier 0 ≤ N ≤ sizeof... ( Vs ) .
Retourne : /*scaled-sum*/ .
Le comportement est indéfini si
/*scaled-sum*/
ne peut pas être représenté par
difference_type
.
Utilisé dans les fonctions suivantes :
-
operator-( const /*iterator*/ & , const /*iterator*/ & ) -
operator-( const /*iterator*/ & , std:: default_sentinel_t )
Paramètres
| t | - | un tuple d'itérateurs vers lequel trouver la distance |