3573. Missing Throws element for basic_string_view(It begin, End end)

Section: [string.view.cons] Status: C++23 Submitter: Hewill Kang Opened: 2021-07-13 Last modified: 2023-11-22 15:47:43 UTC

Priority: Not Prioritized

View all other issues in [string.view.cons].

View all issues with C++23 status.


The standard does not specify the exceptions of this constructor, but since std::to_address is a noexcept function, this constructor throws if and only when end - begin throws, we should add a Throws element for it.

[2021-08-20; Reflector poll]

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

[2021-10-14 Approved at October 2021 virtual plenary. Status changed: Voting → WP.]

Proposed resolution:

This wording is relative to N4892.

  1. Modify [string.view.cons] as indicated:

    template<class It, class End>
      constexpr basic_string_view(It begin, End end);

    -7- Constraints:


    -8- Preconditions:


    -9- Effects: Initializes data_ with to_address(begin) and initializes size_ with end - begin.

    -?- Throws: When and what end - begin throws.