Difference between revisions of "cpp/ranges/chunk view/outer iterator/operator-"
From cppreference.com
< cpp | ranges | chunk view | outer iterator
m (Fixed parameter names. Cap-mode on: we have to sometimes change the parameter names since draft does not have #Parameters section, and, say, `x` may denote an iterator in one overload and a sentinel in others.) |
m (fix.) |
||
Line 17: | Line 17: | ||
{{dcl end}} | {{dcl end}} | ||
− | Calculates the distance between the {{rlp|/|iterator}} and [[cpp/iterator/default_sentinel_t|sentinel]]. | + | Calculates the distance between the {{rlp|/|iterator}} and [[cpp/iterator/default_sentinel_t|sentinel]]. |
Let {{rlpi|/#Data members|parent_}} be the underlying pointer to enclosing {{tt|chunk_view}}. | Let {{rlpi|/#Data members|parent_}} be the underlying pointer to enclosing {{tt|chunk_view}}. | ||
Line 40: | Line 40: | ||
===Return value=== | ===Return value=== | ||
− | + | A distance between given iterator and sentinel. | |
===Example=== | ===Example=== |
Revision as of 15:35, 19 May 2023
friend constexpr difference_type operator-( std::default_sentinel_t s, const /*outer-iterator*/& i ) |
(1) | (since C++23) |
friend constexpr difference_type operator-( const /*outer-iterator*/& i, std::default_sentinel_t s ) |
(2) | (since C++23) |
Calculates the distance (in number of chunks) between the iterator and sentinel.
Let parent_
be the underlying pointer to enclosing chunk_view
.
1) Equivalent to:
const auto dist = ranges::end(i.parent_->base_) - *i.parent_->current_; if (dist < i.parent_->remainder_) return dist == 0 ? 0 : 1; return /*div-ceil*/(dist - i.parent_->remainder_, i.parent_->n_) + 1;
2) Equivalent to: return -(s - i);.
These functions are not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::ranges::chunk_view::outer-iterator is an associated class of the arguments.
Contents |
Parameters
i | - | the iterator |
s | - | the sentinel |
Return value
A distance between given iterator and sentinel.
Example
This section is incomplete Reason: no example |
See also
(C++23) |
increments the iterator (public member function) |