std::ranges::cartesian_product_view<First, Vs...>::iterator<Const>::operator++,--,+=,-=

From cppreference.com
Ranges library
Range adaptors
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

1) Equivalent to next (); return *this;
2) Equivalent to ++*this;
3) Equivalent to auto tmp = *this; ++*this; return tmp;
4) Equivalent to prev (); return *this;
5) Equivalent to auto tmp = *this; --*this; return tmp;
6) Sets the value of *this to ret, where ret is:
  • if n > 0, the value of *this provided that next been called n
  • if n < 0, the value of *this provided that prev been called -n
  • the value of *this before the call.
The behavior is undefined if n is not in the range [ ranges::distance ( *this, ranges::begin ( *parent_) ) ranges::distance ( *this, ranges::end ( *parent_) ) )
7) Equivalent to *this + = -n; return *this;

Parameters

n - position relative to current location

Return value

1,4,6,7) *this
2) (none)
3,5) a copy of *this that was made before the change.

Complexity

6) Constant.

Example

See also

performs iterator arithmetic
(function)