[Bug libstdc++/101214] ranges::split_view::sentinel lacks default constructor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101214 Patrick Palka changed: What|Removed |Added Status|ASSIGNED|RESOLVED Target Milestone|--- |12.0 Resolution|--- |FIXED --- Comment #4 from Patrick Palka --- Fixed for GCC 12.
[Bug libstdc++/101214] ranges::split_view::sentinel lacks default constructor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101214 --- Comment #3 from CVS Commits --- The master branch has been updated by Patrick Palka : https://gcc.gnu.org/g:73464a472aa4e86359f1a5dc529394fe5152fec0 commit r12-2356-g73464a472aa4e86359f1a5dc529394fe5152fec0 Author: Patrick Palka Date: Fri Jul 16 09:44:32 2021 -0400 libstdc++: Give split_view::_Sentinel a default ctor [PR101214] This gives the new split_view's sentinel type a defaulted default constructor, something which was overlooked in r12-1665. This patch also fixes a couple of other issues with the new split_view as reported in the PR. PR libstdc++/101214 libstdc++-v3/ChangeLog: * include/std/ranges (split_view::split_view): Use std::move. (split_view::_Iterator::_Iterator): Remove redundant default_initializable constraint. (split_view::_Sentinel::_Sentinel): Declare. * testsuite/std/ranges/adaptors/split.cc (test02): New test.
[Bug libstdc++/101214] ranges::split_view::sentinel lacks default constructor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101214 --- Comment #2 from 康桓瑋 --- In ranges#L3367: _Iterator() requires default_initializable> = default; This constraint seems to be redundant because forward_iterator always satisfies default_initializable.
[Bug libstdc++/101214] ranges::split_view::sentinel lacks default constructor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101214 Patrick Palka changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Assignee|unassigned at gcc dot gnu.org |ppalka at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed||2021-06-25 CC||ppalka at gcc dot gnu.org
[Bug libstdc++/101214] ranges::split_view::sentinel lacks default constructor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101214 --- Comment #1 from 康桓瑋 --- (In reply to 康桓瑋 from comment #0) > #include > > int main() { > auto r = std::views::iota(0) | std::views::take(5); > decltype(std::views::split(r, 0).end()) e{}; > } > Another tiny issue is that in ranges#L3309: constexpr split_view(_Range&& __r, range_value_t<_Range> __e) : _M_pattern(views::single(__e)), _M_base(views::all(std::forward<_Range>(__r))) { } it should be _M_pattern(views::single(std::move(__e))) just like lazy_split_view.