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++();
Hardened preconditions: holds_alternative(v_) is true.
Effects: Equivalent to ++get(v_).
Returns: *this.
constexpr decltype(auto) operator++(int);
Hardened preconditions: holds_alternative(v_) is true.
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_; }};