This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.
Section: 26.7.14.2 [range.join.view] Status: Resolved Submitter: United States Opened: 2019-11-06 Last modified: 2020-11-09
Priority: 0
View all other issues in [range.join.view].
View all issues with Resolved status.
Discussion:
Addresses US 293
join_view is missing a base() member for returning the underlying view. All the other range adaptors provide this.
Proposed change:To the join_view class template add the member:
constexpr V base() const { return base_; }
Jonathan Wakely:
The NB comment says "join_view
is missing a base()
member for returning the
underlying view. All the other range adaptors provide this."
In fact, split_view and istream_view do not provide base() either. Of the
views that do define base(), all except all_view do so out-of-line, so the proposed
resolution adds it out-of-line too.
[2019-11 Status to Ready during Wednesday night issue processing in Belfast.]
[2019-12-16; Casey comments]
This issue has been resolved by P1456R1 "Move-only views", which added no less than two member functions named "base" to join_view.
Previous resolution [SUPERSEDED]:
This wording is relative to N4835.
Modify 26.7.14.2 [range.join.view], class template join_view synopsis, as indicated:
[…] template<input_range R> requires viewable_range<R> && constructible_from<V, all_view<R>> constexpr explicit join_view(R&& r); constexpr V base() const; constexpr auto begin() { return iterator<simple-view<V>>{*this, ranges::begin(base_)}; } […]Modify 26.7.14.2 [range.join.view] as indicated:
template<input_range R> requires viewable_range<R> && constructible_from<V, all_view<R>> constexpr explicit join_view(R&& r);-2- Effects: […]
constexpr V base() const;-?- Effects: Equivalent to: return base_;
[2020-11-09 Resolved for C++20. Status changed: Tentatively Resolved → Resolved.]
Proposed resolution:
Resolved by accepting P1456R1.