std::reverse_iterator<Iter>:operator=
Von cppreference.com
< cpp | iterator | reverse iterator
template< class U > reverse_iterator& operator=( const reverse_iterator<U>& other ); |
(constexpr seit C++17) | |
Weist current von other.current zu.
|
Diese Überladung nimmt nur an der Auflösung von Überladungen teil, wenn std::is_same_v<U, Iter> false ist und sowohl std::convertible_to<const U&, Iter> als auch std::assignable_from<Iter&, const U&> modelliert werden. |
(seit C++20) |
Inhalt |
[edit] Parameter
| Sonstiges | - | Iterator-Adapter zum Zuweisen |
[edit] Rückgabewert
*this
[edit] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <iterator> int main() { const int a1[]{0, 1, 2}; int a2[]{0, 1, 2, 3}; short a3[]{40, 41, 42}; std::reverse_iterator<const int*> it1{std::crbegin(a1)}; it1 = std::reverse_iterator<int*>{std::rbegin(a2)}; // OK // it1 = std::reverse_iterator<short*>{std::rbegin(a3)}; // Compilation error: // incompatible pointer types std::reverse_iterator<const short*> it2{nullptr}; it2 = std::rbegin(a3); // OK // it2 = std::begin(a3); // Compilation error: no viable operator= overload std::cout << *it2 << '\n'; }
Ausgabe
42
[edit] 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 280 | C++98 | heterogene Zuweisung war nicht erlaubt | erlaubt |
| LWG 3435 | C++20 | Der konvertierende Zuweisungsoperator war nicht eingeschränkt | eingeschränkt |
[edit] Siehe auch
erstellt einen neuen reverse_iterator(öffentliche Memberfunktion) |