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) (desde C++20)
constexpr I base ( ) && ;
(2) (desde C++20)

Devuelve el iterador base subyacente.

1) Devuelve una referencia al iterador subyacente.
2) Construye por movimiento el valor de retorno desde el iterador subyacente.

Contenidos

Parámetros

(ninguno)

Valor de retorno

1) Una referencia al iterador subyacente.
2) Un iterador construido por movimiento desde el iterador subyacente.

Excepciones

Puede lanzar excepciones definidas por la implementación.

Ejemplo

#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 << "Imprimir con reverse_iterator: ";
    for (auto r = counted.base(); r != v.rend(); ++r)
        std::cout << *r << ' ';
    std::cout << '\n';
    std::cout << "Imprimir con counted_iterator: ";
    for (; counted != std::default_sentinel; ++counted)
        std::cout << counted[0] << ' ';
    std::cout << '\n';
}

Salida:

Imprimir con reverse_iterator: 4 3 2 1 0
Imprimir con counted_iterator: 4 3 2

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Se aplica a Comportamiento publicado Comportamiento correcto
LWG 3391 C++20 la versión const de base devuelve una copia del iterador subyacente devuelve una referencia
LWG 3593 C++20 la versión const de base devuelve una referencia pero podría no ser noexcept hecho noexcept

Véase también

accede al elemento apuntado
(función miembro pública)
devuelve la distancia hasta el final
(función miembro pública)