std::ranges...++,--,+=,-=(3)
β¨ std::ranges::slide_view::iterator::operator++,--,+=,-= β¨
okay bestie, this is the C++ Standard Libary manpage for the slide_view iteratorβs movement operators. Itβs giving βiterator cardioβ and honestly it ate. Letβs go π
πΈ NAME πΈ
std::ranges::slide_view::iterator::operator++,--,+=,-= -
std::ranges::slide_view::iterator::operator++,--,+=,-=
π¦ Synopsis π¦
Every single one of these is constexpr and (since C++23). Hereβs the synopsis, verbatim bestie:
constexpr /*iterator*/& operator++(); (1) (since C++23)
constexpr /*iterator*/ operator++( int ); (2) (since C++23)
constexpr /*iterator*/& operator--() (3) (since C++23)
requires ranges::bidirectional_range<Base>;
constexpr /*iterator*/ operator--( int ) (4) (since C++23)
requires ranges::bidirectional_range<Base>;
constexpr /*iterator*/& operator+=( difference_type n ) (5) (since C++23)
requires ranges::random_access_range<Base>;
constexpr /*iterator*/& operator-=( difference_type n ) (6) (since C++23)
requires ranges::random_access_range<Base>;
Advances or decrements the iterator.
Let current_ and last_ele_ be the underlying iterators to the begin and end of the sliding window.
- (1)
operator++()β equivalent to:
current_ = ranges::next(current_);
last_ele_ = ranges::next(last_ele_); // if last_ele_ is present
return *this;
Before the invocation, the current_ and last_ele_ (if present) must be incrementable.
- (2)
operator++( int )β equivalent to:
auto tmp = *this; ++*this; return tmp;
- (3)
operator--()β equivalent to:
current_ = ranges::prev(current_);
last_ele_ = ranges::prev(last_ele_); // if last_ele_ is present
return *this;
Before the invocation, the current_ and last_ele_ (if present) must be decrementable.
- (4)
operator--( int )β equivalent to:
auto tmp = *this; --*this; return tmp;
- (5)
operator+=( difference_type n )β equivalent to:
current_ = current_ + n;
last_ele_ = last_ele_ + n; // if last_ele_ is present
return *this;
Before the invocation, the expressions current_ + n and last_ele_ + n (if last_ele_ is present) must have well-defined behavior.
- (6)
operator-=( difference_type n )β equivalent to:
current_ = current_ - n;
last_ele_ = last_ele_ - n; // if last_ele_ is present
return *this;
Before the invocation, the expressions current_ - n and last_ele_ - n (if last_ele_ is present) must have well-defined behavior.
π Parameters π
nβ position relative to current location.
π Return value π
- 1, 3, 5, 6)
*this - 2, 4) a copy of
*thisthat was made before the change
π§ Example π§
This section is incomplete.
Reason: no example.
π See also π
operator+performs iterator arithmeticoperator-(function) (C++23)
π Category π
Todo no example
Source/version + date check, bestie: this came from http://cppreference.com, dated 2024.06.10, and the page is std::ranges...++,--,+=,-=(3). Periodt π
β¨π«Ά
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms