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.
split_view::base() const & is overconstrainedSection: 25.7.17.2 [range.split.view] Status: C++23 Submitter: Tim Song Opened: 2021-09-13 Last modified: 2023-11-22
Priority: Not Prioritized
View all issues with C++23 status.
Discussion:
Unlike every other range adaptor, split_view::base() const & is
constrained on copyable instead of copy_constructible.
copyable — copy_constructible is sufficient.
[2021-09-24; 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.
Modify 25.7.17.2 [range.split.view], class template split_view synopsis, as indicated:
namespace std::ranges {
template
requires view && view &&
indirectly_comparable, iterator_t, ranges::equal_to>
class split_view : public view_interface> {
private:
[…]
public:
[…]
constexpr V base() const& requires copyablecopy_constructible { return base_; }
constexpr V base() && { return std::move(base_); }
[…]
};