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