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