Namespaces
Variants

std::counted_iterator<I>:: base

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
constexpr const I & base ( ) const & noexcept ;
(1) (seit C++20)
constexpr I base ( ) && ;
(2) (seit C++20)

Gibt den zugrundeliegenden Basis-Iterator zurück.

1) Gibt eine Referenz auf den zugrundeliegenden Iterator zurück.
2) Move-Konstruiert den Rückgabewert aus dem zugrunde liegenden Iterator.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

1) Ein Verweis auf den zugrundeliegenden Iterator.
2) Ein Iterator, der durch Move-Konstruktion aus dem zugrunde liegenden Iterator erstellt wurde.

Exceptions

Kann implementierungsdefinierte Ausnahmen auslösen.

Beispiel

#include <algorithm>
#include <iostream>
#include <iterator>
#include <type_traits>
#include <vector>
int main()
{
    std::vector<int> v{0, 1, 2, 3, 4};
    std::reverse_iterator<std::vector<int>::iterator> reverse{v.rbegin()};
    std::counted_iterator counted{reverse, 3};
    static_assert(std::is_same<
        decltype(counted.base()),
        std::reverse_iterator<std::vector<int>::iterator> const&
    >{});
    std::cout << "Print with reverse_iterator: ";
    for (auto r = counted.base(); r != v.rend(); ++r)
        std::cout << *r << ' ';
    std::cout << '\n';
    std::cout << "Print with counted_iterator: ";
    for (; counted != std::default_sentinel; ++counted)
        std::cout << counted[0] << ' ';
    std::cout << '\n';
}

Ausgabe:

Print with reverse_iterator: 4 3 2 1 0
Print with counted_iterator: 4 3 2

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 3391 C++20 die const-Version von base gibt eine Kopie des zugrundeliegenden Iterators zurück gibt eine Referenz zurück
LWG 3593 C++20 die const-Version von base gibt eine Referenz zurück, könnte aber nicht noexcept sein als noexcept festgelegt

Siehe auch

greift auf das referenzierte Element zu
(öffentliche Elementfunktion)
gibt die Entfernung zum Ende zurück
(öffentliche Elementfunktion)