This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++23 status.
ranges::drop_while_view::begin()
is missing a preconditionSection: 25.7.13.2 [range.drop.while.view] Status: C++23 Submitter: Michael Schellenberger Costa Opened: 2020-10-13 Last modified: 2023-11-22
Priority: 0
View all other issues in [range.drop.while.view].
View all issues with C++23 status.
Discussion:
Similar to ranges::filter_view
25.7.8.2 [range.filter.view] p3, ranges::drop_while_view
should have a precondition on its begin()
method that the predicate is set.
Preconditions:pred_.has_value()
.
[2020-11-07; Reflector prioritization]
Set priority to 0 and status to Tentatively Ready after six votes in favour during reflector discussions.
[2021-02-26 Approved at February 2021 virtual plenary. Status changed: Tentatively Ready → WP.]
Proposed resolution:
This wording is relative to N4868.
Modify 25.7.13.2 [range.drop.while.view] as indicated:
Since we usually don't rely on implicit
bool
conversion in Preconditions: elements an explicit "istrue
" has been added. Editorial fixes of the referenced paragraph 25.7.13.2 [range.drop.while.view] p3 and similar places have been requested separately.
constexpr auto begin();-?- Preconditions:
-3- Returns:pred_.has_value()
istrue
.ranges::find_if_not(base_, cref(*pred_))
. -4- […]