std::ranges::transform_view<V,F>::iterator<Const>::base
Von de.cppreference.net
constexpr const ranges::iterator_t<Base>& base() const & noexcept;
|
(1) | (seit C++20) |
constexpr ranges::iterator_t<Base> base() &&;
|
(2) | (seit C++20) |
Gibt den zugrundeliegenden Iterator zurück.
1) Gibt eine Referenz auf den zugrundeliegenden Iterator zurück.
2) Konstruiert das Ergebnis per Verschiebung aus dem zugrundeliegenden Iterator.
Parameter
(keine)
Rückgabewert
1)
Ein Verweis auf den zugrundeliegenden Iterator.
2)
Ein Iterator, der aus dem zugrundeliegenden Iterator move-konstruiert wurde.
Beispiel
Diesen Code ausführen
#include <algorithm> #include <iostream> #include <iterator> #include <ranges> int main() { const auto v = { 0, 1, 2, 3, 4 }; auto x2 = [](int x) { return x << 1; }; std::ranges::transform_view tv{ v, x2 }; std::ostream_iterator<int> ostr{ std::cout, " " }; std::ranges::copy(v, ostr), std::cout << '\n'; std::ranges::copy(tv.base(), ostr), std::cout << '\n'; std::ranges::copy(tv, ostr), std::cout << '\n'; }
Ausgabe:
0 1 2 3 4 0 1 2 3 4 0 2 4 6 8
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 3533 | C++20 |
die
const
&
Überladung von
base
gibt eine Kopie des zugrundeliegenden Iterators zurück
|
gibt eine Referenz zurück |
| LWG 3593 | C++20 |
die
const
&
Überladung von
base
könnte nicht noexcept sein
|
als noexcept festgelegt |