constexpr /*iterator*/& operator++(); | (1) | (since C++23) |
constexpr void operator++( int ); | (2) | (since C++23) |
constexpr /*iterator*/ operator++( int ) requires ranges::forward_range</*maybe-const*/<Const, First>>; | (3) | (since C++23) |
constexpr /*iterator*/& operator--() requires /*cartesian-product-is-bidirectional*/<Const, First, Vs...>; | (4) | (since C++23) |
constexpr /*iterator*/ operator--( int ) requires /*cartesian-product-is-bidirectional*/<Const, First, Vs...>; | (5) | (since C++23) |
constexpr /*iterator*/& operator+=( difference_type n ) requires /*cartesian-product-is-random-access*/<Const, First, Vs...>; | (6) | (since C++23) |
constexpr /*iterator*/& operator-=( difference_type n ) requires /*cartesian-product-is-random-access*/<Const, First, Vs...>; | (7) | (since C++23) |
Increments or decrements the iterator.
Let current_ denote the underlying tuple of iterators and parent_ denote the underlying pointer to cartesian_product_view.
next(); return *this;
++*this;
auto tmp = *this; ++*this; return tmp;
prev(); return *this;
auto tmp = *this; --*this; return tmp;
*this to ret, where ret is: n > 0, the value of *this provided that next been called n times. Otherwise, n < 0, the value of *this provided that prev been called -n times. Otherwise, *this before the call. n is not in the range [ranges::distance(*this, ranges::begin(*parent_)), ranges::distance(*this, ranges::end(*parent_))]. *this += -n; return *this;.| n | - | position relative to current location |
*this
*this that was made before the change.|
(C++23) | performs iterator arithmetic (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/ranges/cartesian_product_view/iterator/operator_arith