Namespaces
Variants

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

Von de.cppreference.net
 
 
Bereichsbibliothek
Bereichsadapter
 
 

Die folgenden, nur zur Darstellung dienenden Mitgliedsfunktionsschablonen vereinfachen die Beschreibung.

Jede Hilfsfunktionsschablone hat einen Nicht-Typ-Schablonenparameter vom Typ std::size_t.

  • Wenn der Name des Schablonenparameters N ist, ist das Schablonenargument immer it_ .index().
  • Wenn der Name des Schablonenparameters I ist, kann das Schablonenargument ein beliebiger std::size_t-Wert in [0, sizeof...(Views)) sein.

Allerdings ist das Schablonenargument möglicherweise keine Kompilzeitkonstante, daher ist die tatsächliche Wirkung von helper <non_const>(/* arguments */) ähnlich der von 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 */);
.

Hilfsvorlagen

Mini-Hilfsvorlagen

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

Die Mini-Helfer-Vorlagen vereinfachen die Beschreibung der Haupt-Helfer-Vorlagen und Member-Funktionen. Sie sind nicht in den C++-Standarddokumenten enthalten.

1) Ermittelt den zugrundeliegenden Iterator, der in it_ enthalten ist.
Gibt std::get < N > ( it_  ) zurück.
2) Ermittelt die I te Ansicht im übergeordneten concat_view .
Gibt std::get < I > ( parent_  - > views_  ) zurück.
3) Erhält einen Iterator zum Anfang der I -ten Ansicht im übergeordneten concat_view .
Gibt ranges:: begin ( get-view  < I > ( ) ) zurück.
4) Erhält einen Past-the-End-Iterator oder einen Sentinel der I -ten Ansicht im übergeordneten concat_view .
Gibt ranges:: end ( get-view  < I > ( ) ) zurück.
5) Konvertiert value in den zugrundeliegenden Differenztyp des zugrundeliegenden Iterators, der in it_ enthalten ist.
Gibt static_cast < std:: iter_difference_t < std:: variant_alternative_t < N, base-iter  >>> ( value ) zurück.

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

template < std:: size_t N >
constexpr void /*satisfy*/ ( ) ;
( Nur zur Darstellung* )

Passt die aktuelle (globale) Position von it_ an.

  • Wenn N gleich sizeof... ( Views ) - 1 ist, wird nichts unternommen.
  • Andernfalls entspricht es 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*/ ( ) ;
( Nur zur Darstellung* )

Bewegt it_ zur vorherigen (globalen) Position.

  • Wenn N gleich ​ 0 ​ ist, entspricht dies -- get-iter  < 0 > ( ) ; .
  • Andernfalls entspricht dies 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 ) ;
( Nur zur Darstellung* )

Bewegt die aktuelle (globale) Position um step Schritte vorwärts.

Parameter

offset - der Offset der aktuellen (globalen) Position vom Anfang des Bereichs, in den it_ derzeit zeigt
steps - die Anzahl der vorwärts zu bewegenden Schritte

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

template < size_t N >

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

difference_type steps ) ;
( Nur zur Darstellung* )

Bewegt die aktuelle (globale) Position um steps Schritte rückwärts.

Parameter

offset - der Offset der aktuellen (globalen) Position vom Anfang des Bereichs, auf den it_ derzeit verweist
steps - die Anzahl der rückwärts zu bewegenden Schritte