Difference between revisions of "cpp/ranges/chunk view/outer iterator/operator-"
From cppreference.com
< cpp | ranges | chunk view | outer iterator
(+page) |
m (fmt.) |
||
(3 intermediate revisions by one user not shown) | |||
Line 1: | Line 1: | ||
− | {{title|operator-{{ | + | {{title|operator-{{|(ranges::chunk_view::''outer-iterator'')}}}} |
{{cpp/ranges/chunk_view/navbar}} | {{cpp/ranges/chunk_view/navbar}} | ||
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 23: | Line 23: | ||
@1@ Equivalent to: | @1@ Equivalent to: | ||
{{source|1= | {{source|1= | ||
− | const auto dist = ranges::end( | + | const auto dist = ranges::end(.parent_->base_) - *.parent_->current_; |
− | if (dist < | + | if (dist < .parent_->remainder_) |
return dist == 0 ? 0 : 1; | return dist == 0 ? 0 : 1; | ||
− | return /*div-ceil*/(dist - | + | return /*div-ceil*/(dist - .parent_->remainder_, .parent_->n_) + 1; |
}} | }} | ||
− | @2@ Equivalent to: {{c|1=return -( | + | @2@ Equivalent to: {{c|1=return -(- );}}. |
− | {{cpp/hidden friend|std::ranges::chunk_view::''outer-iterator''|plural=yes}} | + | {{cpp/hidden friend|std::ranges::chunk_view::''outer-iterator''|plural=yes}} |
===Parameters=== | ===Parameters=== | ||
Line 40: | Line 40: | ||
===Return value=== | ===Return value=== | ||
− | + | distance between given iterator and sentinel | |
===Example=== | ===Example=== |
Latest revision as of 22:16, 20 June 2024
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 |
[edit] Parameters
i | - | the iterator |
s | - | the sentinel |
[edit] Return value
The distance between given iterator and sentinel.
[edit] Example
This section is incomplete Reason: no example |
[edit] See also
(C++23) |
increments the iterator (public member function) |