[gcc(refs/vendors/ibm/heads/perf)] libstdc++: Add default-initializers to views (LWG 3364)
Jiu Fu Guo
guojiufu@gcc.gnu.org
Thu Mar 19 05:43:19 GMT 2020
https://gcc.gnu.org/g:7433536b3d864c0d8d5180348690e1c280a3eaf2
commit 7433536b3d864c0d8d5180348690e1c280a3eaf2
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Feb 19 22:00:14 2020 +0000
libstdc++: Add default-initializers to views (LWG 3364)
* include/std/ranges (take_while_view, drop_view, drop_while_view)
(elements_view:_Iterator): Initialize data members (LWG 3364).
Diff:
---
libstdc++-v3/ChangeLog | 3 +++
libstdc++-v3/include/std/ranges | 10 +++++-----
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 622c2948eab..ef91b80ef45 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,8 @@
2020-02-19 Jonathan Wakely <jwakely@redhat.com>
+ * include/std/ranges (take_while_view, drop_view, drop_while_view)
+ (elements_view:_Iterator): Initialize data members (LWG 3364).
+
* libsupc++/compare (three_way_comparable): Remove always-false check
that should have been removed with weak_equality (P1959R0).
(three_way_comparable_with): Likewise. Reorder requirements (LWG 3360).
diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index b348ba2cfcb..7a66491f2e4 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -2008,7 +2008,7 @@ namespace views
{ return __y._M_end == __x || !std::__invoke(*__y._M_pred, *__x); }
};
- _Vp _M_base;
+ _Vp _M_base = _Vp();
__detail::__box<_Pred> _M_pred;
public:
@@ -2068,8 +2068,8 @@ namespace views
class drop_view : public view_interface<drop_view<_Vp>>
{
private:
- _Vp _M_base;
- range_difference_t<_Vp> _M_count;
+ _Vp _M_base = _Vp();
+ range_difference_t<_Vp> _M_count = 0;
public:
drop_view() = default;
@@ -2147,7 +2147,7 @@ namespace views
class drop_while_view : public view_interface<drop_while_view<_Vp, _Pred>>
{
private:
- _Vp _M_base;
+ _Vp _M_base = _Vp();
__detail::__box<_Pred> _M_pred;
public:
@@ -3179,7 +3179,7 @@ namespace views
{
using _Base = conditional_t<_Const, const _Vp, _Vp>;
- iterator_t<_Base> _M_current;
+ iterator_t<_Base> _M_current = iterator_t<_Base>();
friend _Iterator<!_Const>;
More information about the Libstdc++-cvs
mailing list