concat_view::iterator
's conversion constructorSection: 25.7.18.3 [range.concat.iterator] Status: WP Submitter: Hewill Kang Opened: 2024-04-26 Last modified: 2024-07-08
Priority: Not Prioritized
View other active issues in [range.concat.iterator].
View all other issues in [range.concat.iterator].
View all issues with WP status.
Discussion:
This conversion constructor obtains the alternative iterator of the argument
through std::get
, which will throw when the variant
is valueless.
We seem to be missing a Preconditions element here.
[2024-05-08; Reflector poll]
Set status to Tentatively Ready after seven votes in favour during reflector poll.
[St. Louis 2024-06-29; Status changed: Voting → WP.]
Proposed resolution:
This wording is relative to N4981.
Modify 25.7.18.3 [range.concat.iterator] as indicated:
constexpr iterator(iterator<!Const> it) requires Const && (convertible_to<iterator_t<Views>, iterator_t<const Views>> && ...);-?- Preconditions:
-8- Effects: Initializesit.it_.valueless_by_exception()
isfalse
.parent_
withit.parent_
, and leti
beit.it_.index()
, initializesit_
withbase-iter(in_place_index<i>, std::get<i>(std::move(it.it_)))
.