Files
2025-10-25 03:02:53 +03:00

2.5 KiB

[common.iter.nav]

24 Iterators library [iterators]

24.5 Iterator adaptors [predef.iterators]

24.5.5 Common iterators [iterators.common]

24.5.5.5 Navigation [common.iter.nav]

🔗

constexpr common_iterator& operator++();

1

#

Hardened preconditions: holds_alternative(v_) is true.

2

#

Effects: Equivalent to ++get(v_).

3

#

Returns: *this.

🔗

constexpr decltype(auto) operator++(int);

4

#

Hardened preconditions: holds_alternative(v_) is true.

5

#

Effects: If I models forward_iterator, equivalent to:common_iterator tmp = *this;++*this;return tmp;

Otherwise, ifrequires(I& i) { { *i++ } -> can-reference; } is true orindirectly_readable && constructible_from<iter_value_t, iter_reference_t> &&move_constructible<iter_value_t> is false, equivalent to:return get(v_)++;

Otherwise, equivalent to:postfix-proxy p(**this);++this;return p; where postfix-proxy is the exposition-only class:class postfix-proxy { iter_value_t keep_; constexpr postfix-proxy(iter_reference_t&& x): keep_(std::forward<iter_reference_t>(x)) {}public:constexpr const iter_value_t& operator() const noexcept {return keep_; }};