Title
Missing preconditions for take_view constructor
Status
c++23
Section
[range.take.view]
Submitter
Hewill Kang

Created on 2022-07-15.00:00:00 last changed 13 months ago

Messages

Date: 2022-11-17.00:42:33

Proposed resolution:

This wording is relative to N4910.

  1. Modify [range.take.view] as indicated:

    constexpr take_view(V base, range_difference_t<V> count);
    

    -?- Preconditions: count >= 0 is true.

    -1- Effects: Initializes base_ with std::move(base) and count_ with count.

Date: 2022-11-12.00:00:00

[ 2022-11-12 Approved at November 2022 meeting in Kona. Status changed: Voting → WP. ]

Date: 2022-08-15.00:00:00

[ 2022-08-23; Reflector poll ]

Set status to Tentatively Ready after eight votes in favour during reflector poll.

Date: 2022-07-15.00:00:00

When V does not model sized_range, take_view::begin returns counted_iterator(ranges::begin(base_), count_). Since the counted_iterator constructor ([counted.iter.const]) already has a precondition that n >= 0, we should add this to take_view as well, which is consistent with drop_view.

History
Date User Action Args
2023-11-22 15:47:43adminsetstatus: wp -> c++23
2022-11-17 00:42:33adminsetmessages: + msg13056
2022-11-17 00:42:33adminsetstatus: voting -> wp
2022-11-08 03:46:49adminsetstatus: ready -> voting
2022-08-23 15:24:34adminsetmessages: + msg12690
2022-08-23 15:24:34adminsetstatus: new -> ready
2022-07-16 16:33:08adminsetmessages: + msg12592
2022-07-15 00:00:00admincreate