Namespaces
Variants

std::ranges::concat_view<Views...>:: iterator <Const>:: satisfy , prev , advance-fwd , advance-bwd

From cppreference.net
Ranges library
Range adaptors

Les modèles de fonctions membres suivants, à titre d'exposition uniquement, simplifient la description.

Chaque modèle de fonction d'assistance possède un paramètre de modèle constant de type std::size_t .

  • Si le nom du paramètre de modèle est N , l'argument de modèle est toujours it_  . index ( ) .
  • Si le nom du paramètre de modèle est I , l'argument de modèle peut être toute valeur std::size_t dans l'intervalle [ 0 , sizeof... ( Views ) ) .

Cependant, l'argument du template pourrait ne pas être une constante à la compilation, donc l'effet réel de helper  < non_const > ( /* arguments */ ) est similaire à if ( non_const == 0 )
helper  < 0 > ( /* arguments */ ) ;
else if ( non_const == 1 )
helper  < 1 > ( /* arguments */ ) ;
/* autres indices */
else if ( non_const == ( sizeof... ( Views ) - 1 ) )
helper  < sizeof... ( Views ) - 1 > ( /* arguments */ ) ;
.

Table des matières

Modèles d'assistance

Modèles d'assistance miniatures

template < std:: size_t N >
constexpr auto /*get-iter*/ ( ) ;
(1) ( exposition uniquement* )
template < std:: size_t I >
constexpr auto /*get-view*/ ( ) ;
(2) ( exposition uniquement* )
template < std:: size_t I >
constexpr auto /*get-begin*/ ( ) ;
(3) ( exposition uniquement* )
template < std:: size_t I >
constexpr auto /*get-end*/ ( ) ;
(4) ( exposition uniquement* )
template < std:: size_t N >
constexpr auto /*to-underlying-diff-type*/ ( difference_type value ) ;
(5) ( exposition uniquement* )

Les modèles d'assistance mini simplifient la description des principaux modèles d'assistance et fonctions membres. Ils ne sont pas inclus dans les documents standards C++.

1) Obtient l'itérateur sous-jacent contenu dans it_ .
Retourne std::get < N > ( it_  ) .
2) Obtient la I ème vue dans le parent concat_view .
Retourne std::get < I > ( parent_  - > views_  ) .
3) Obtient un itérateur vers le début de la I ème vue dans le concat_view parent.
Retourne ranges:: begin ( get-view  < I > ( ) ) .
4) Obtient un itérateur de fin ou un sentinelle de la I ème vue dans le parent concat_view .
Retourne ranges:: end ( get-view  < I > ( ) ) .
5) Convertit value en le type de différence sous-jacent de l'itérateur sous-jacent contenu dans it_ .
Retourne static_cast < std:: iter_difference_t < std:: variant_alternative_t < N, base-iter  >>> ( value ) .

std::ranges::concat_view:: iterator :: satisfy <N>

template < std:: size_t N >
constexpr void /*satisfy*/ ( ) ;
( exposition uniquement* )

Ajuste la position (globale) actuelle de it_ .

  • Si N est égal à sizeof... ( Views ) - 1 , ne fait rien.
  • Sinon, équivalent à if ( get-iter  < N > ( ) == get-end  < N > ( ) )
    {
    it_  . template emplace < N + 1 > ( get-begin  < N + 1 > ( ) ) ;
    satisfy  < N + 1 > ( ) ;
    }
    .

std::ranges::concat_view:: iterator :: prev <N>

template < size_t N >
constexpr void /*prev*/ ( ) ;
( exposition uniquement* )

Déplace it_ vers la position (globale) précédente.

  • Si N vaut 0 , équivalent à -- get-iter  < 0 > ( ) ; .
  • Sinon, équivalent à if ( get-iter  < N > ( ) == get-begin  < N > ( ) )
    {
    it_  . template emplace < N - 1 > ( get-end  < N - 1 > ( ) ) ;
    prev  < N - 1 > ( ) ;
    }
    else
    -- get-iter  < N > ( ) ;
    .

std::ranges::concat_view:: iterator :: advance-fwd <N>

template < size_t N >

constexpr void /*advance-fwd*/ ( difference_type offset,

difference_type steps ) ;
( exposition uniquement* )

Avance la position (globale) actuelle de step pas vers l'avant.

Paramètres

offset - le décalage de la position (globale) actuelle par rapport au début de la plage dans laquelle it_ se réfère actuellement
steps - le nombre de pas à avancer vers l'avant

std::ranges::concat_view:: iterator :: advance-bwd <N>

template < size_t N >

constexpr void /*advance-bwd*/ ( difference_type offset,

difference_type steps ) ;
( exposition uniquement* )

Recule la position (globale) actuelle de steps pas vers l'arrière.

Paramètres

offset - le décalage de la position (globale) actuelle depuis le début de la plage dans laquelle it_ se réfère actuellement
steps - le nombre de pas à reculer