Namensräume
Varianten
Aktionen

operator-(std::counted_iterator<I>, std::default_sentinel_t)

Von cppreference.com
 
 
Iterator-Bibliothek
Iterator-Konzepte
Iterator-Primitive
Algorithmus-Konzepte und Hilfsprogramme
Indirekte aufrufbare Konzepte
Gemeinsame Algorithmus-Anforderungen
(C++20)
(C++20)
(C++20)
Dienstprogramme
(C++20)
Iterator-Adapter
Bereichszugriff
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
friend constexpr std::iter_difference_t<I> operator-(
    const counted_iterator& x, std::default_sentinel_t );
(1) (seit C++20)
friend constexpr std::iter_difference_t<I> operator-(
    std::default_sentinel_t, const counted_iterator& y );
(2) (seit C++20)
1) Gibt die negative Distanz zum Ende zurück.
2) Gibt die positive Distanz zum Ende zurück.

Diese Funktion-Template ist für normale unqualifizierte oder qualifizierte Suche nicht sichtbar und kann nur durch Argument-abhängige Suche gefunden werden, wenn std::counted_iterator<I> eine assoziierte Klasse der Argumente ist.

Inhalt

[bearbeiten] Parameter

x, y - Iterator-Adaptoren, für die die Differenz berechnet werden soll

[bearbeiten] Rückgabewert

1) -x.count()
2) y.count()

[bearbeiten] Beispiel

#include <initializer_list>
#include <iterator>
 
int main()
{
    constexpr static auto v = {1, 2, 3, 4};
    constexpr std::counted_iterator<std::initializer_list<int>::iterator>
        it{v.begin(), 3};
    constexpr auto d1 = it - std::default_sentinel;
    static_assert(d1 == -3); // (1)
    constexpr auto d2 = std::default_sentinel - it;
    static_assert(d2 == +3); // (2)
}

[bearbeiten] Siehe auch

inkrementiert oder dekrementiert den counted_iterator
(öffentliche Memberfunktion) [edit]
(C++20)
bewegt den Iterator vorwärts
(Funktionstemplate) [edit]
(C++20)
berechnet die Distanz zwischen zwei Iterator-Adaptoren
(Funktionstemplate) [edit]
Standard-Sentinel zur Verwendung mit Iteratoren, die die Grenze ihres Bereichs kennen
(Klasse) [bearbeiten]