Created on 2021-09-13.00:00:00 last changed 23 months ago
Proposed resolution:
This wording is relative to N4892.
Modify [range.split.view], class template split_view synopsis, as indicated:
namespace std::ranges {
template<forward_range V, forward_range Pattern>
requires view<V> && view<Pattern> &&
indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to>
class split_view : public view_interface<split_view<V, Pattern>> {
private:
[…]
public:
[…]
constexpr V base() const& requires copyablecopy_constructible<V> { return base_; }
constexpr V base() && { return std::move(base_); }
[…]
};
[ 2021-10-14 Approved at October 2021 virtual plenary. Status changed: Voting → WP. ]
[ 2021-09-24; Reflector poll ]
Set status to Tentatively Ready after eight votes in favour during reflector poll.
Unlike every other range adaptor, split_view::base() const & is constrained on copyable<V> instead of copy_constructible<V>.
Since this function just performs a copy construction, there is no reason to require all of copyable — copy_constructible is sufficient.| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2023-11-22 15:47:43 | admin | set | status: wp -> c++23 |
| 2021-10-14 09:56:08 | admin | set | messages: + msg12141 |
| 2021-10-14 09:56:08 | admin | set | status: voting -> wp |
| 2021-09-29 12:57:28 | admin | set | status: ready -> voting |
| 2021-09-24 17:55:02 | admin | set | messages: + msg12071 |
| 2021-09-24 17:55:02 | admin | set | status: new -> ready |
| 2021-09-17 15:12:40 | admin | set | messages: + msg12034 |
| 2021-09-13 00:00:00 | admin | create | |