stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
authorFrançois Dumont <fdumont@gcc.gnu.org>
Sun, 27 May 2018 17:06:40 +0000 (17:06 +0000)
committerFrançois Dumont <fdumont@gcc.gnu.org>
Sun, 27 May 2018 17:06:40 +0000 (17:06 +0000)
2018-05-27  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
(_Rb_tree(const allocator_type&)): Use latter.
* include/bits/stl_map.h (map(const allocator_type&)): Likewise.
(map(initializer_list<value_type>, const allocator_type&)): Likewise.
(map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
* include/bits/stl_multimap.h
(multimap(const allocator_type&)): Likewise.
(multimap(initializer_list<value_type>, const allocator_type&)):
Likewise.
(multimap(_InputIterator, _InputIterator, const allocator_type&)):
Likewise.
* include/bits/stl_set.h (set(const allocator_type&)): Likewise.
(set(initializer_list<value_type>, const allocator_type&)): Likewise.
(set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
* include/bits/stl_multiset.h
(multiset(const allocator_type&)): Likewise.
(multiset(initializer_list<value_type>, const allocator_type&)):
Likewise.
(multiset(_InputIterator, _InputIterator, const allocator_type&)):
Likewise.

From-SVN: r260806

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_map.h
libstdc++-v3/include/bits/stl_multimap.h
libstdc++-v3/include/bits/stl_multiset.h
libstdc++-v3/include/bits/stl_set.h
libstdc++-v3/include/bits/stl_tree.h

index 02b8557bc25de80439f278f03fc8fe7bd99e1534..3068a08b3ec935f6abbfa8d7054f98f4831ff41d 100644 (file)
@@ -1,3 +1,26 @@
+2018-05-27  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
+       (_Rb_tree(const allocator_type&)): Use latter.
+       * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
+       (map(initializer_list<value_type>, const allocator_type&)): Likewise.
+       (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
+       * include/bits/stl_multimap.h
+       (multimap(const allocator_type&)): Likewise.
+       (multimap(initializer_list<value_type>, const allocator_type&)):
+       Likewise.
+       (multimap(_InputIterator, _InputIterator, const allocator_type&)):
+       Likewise.
+       * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
+       (set(initializer_list<value_type>, const allocator_type&)): Likewise.
+       (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
+       * include/bits/stl_multiset.h
+       (multiset(const allocator_type&)): Likewise.
+       (multiset(initializer_list<value_type>, const allocator_type&)):
+       Likewise.
+       (multiset(_InputIterator, _InputIterator, const allocator_type&)):
+       Likewise.
+
 2018-05-25  François Dumont  <fdumont@gcc.gnu.org>
 
        PR libstdc++/85768
index a4a026ed34a6ac1b841c63ccb61998506f8afbbd..b81a2c4b7fc5d7985206dfd4fc6bcd49c7a5d310 100644 (file)
@@ -232,7 +232,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       /// Allocator-extended default constructor.
       explicit
       map(const allocator_type& __a)
-      : _M_t(_Compare(), _Pair_alloc_type(__a)) { }
+      : _M_t(_Pair_alloc_type(__a)) { }
 
       /// Allocator-extended copy constructor.
       map(const map& __m, const allocator_type& __a)
@@ -246,14 +246,14 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
       /// Allocator-extended initialier-list constructor.
       map(initializer_list<value_type> __l, const allocator_type& __a)
-      : _M_t(_Compare(), _Pair_alloc_type(__a))
+      : _M_t(_Pair_alloc_type(__a))
       { _M_t._M_insert_unique(__l.begin(), __l.end()); }
 
       /// Allocator-extended range constructor.
       template<typename _InputIterator>
        map(_InputIterator __first, _InputIterator __last,
            const allocator_type& __a)
-       : _M_t(_Compare(), _Pair_alloc_type(__a))
+       : _M_t(_Pair_alloc_type(__a))
        { _M_t._M_insert_unique(__first, __last); }
 #endif
 
index fc8f454723d425fa523ef6a54990717148425c3c..23332ee53f85ce07ed8189f24ecfa26aefb510e5 100644 (file)
@@ -229,7 +229,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       /// Allocator-extended default constructor.
       explicit
       multimap(const allocator_type& __a)
-      : _M_t(_Compare(), _Pair_alloc_type(__a)) { }
+      : _M_t(_Pair_alloc_type(__a)) { }
 
       /// Allocator-extended copy constructor.
       multimap(const multimap& __m, const allocator_type& __a)
@@ -243,14 +243,14 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
       /// Allocator-extended initialier-list constructor.
       multimap(initializer_list<value_type> __l, const allocator_type& __a)
-      : _M_t(_Compare(), _Pair_alloc_type(__a))
+      : _M_t(_Pair_alloc_type(__a))
       { _M_t._M_insert_equal(__l.begin(), __l.end()); }
 
       /// Allocator-extended range constructor.
       template<typename _InputIterator>
        multimap(_InputIterator __first, _InputIterator __last,
                 const allocator_type& __a)
-       : _M_t(_Compare(), _Pair_alloc_type(__a))
+       : _M_t(_Pair_alloc_type(__a))
        { _M_t._M_insert_equal(__first, __last); }
 #endif
 
index f41f56c9485f3f15aea55e515f59911f01e79d9b..829bc96e8b22c95c8aa8e115b120ef39308b3cd0 100644 (file)
@@ -245,7 +245,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       /// Allocator-extended default constructor.
       explicit
       multiset(const allocator_type& __a)
-      : _M_t(_Compare(), _Key_alloc_type(__a)) { }
+      : _M_t(_Key_alloc_type(__a)) { }
 
       /// Allocator-extended copy constructor.
       multiset(const multiset& __m, const allocator_type& __a)
@@ -259,14 +259,14 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
       /// Allocator-extended initialier-list constructor.
       multiset(initializer_list<value_type> __l, const allocator_type& __a)
-      : _M_t(_Compare(), _Key_alloc_type(__a))
+      : _M_t(_Key_alloc_type(__a))
       { _M_t._M_insert_equal(__l.begin(), __l.end()); }
 
       /// Allocator-extended range constructor.
       template<typename _InputIterator>
        multiset(_InputIterator __first, _InputIterator __last,
                 const allocator_type& __a)
-       : _M_t(_Compare(), _Key_alloc_type(__a))
+       : _M_t(_Key_alloc_type(__a))
        { _M_t._M_insert_equal(__first, __last); }
 
       /**
index 2e332efa477fb5f67431d26d9f9a5fd1c1c61573..4192526502568d63f10bf440890070a399f88e2d 100644 (file)
@@ -249,7 +249,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
       /// Allocator-extended default constructor.
       explicit
       set(const allocator_type& __a)
-      : _M_t(_Compare(), _Key_alloc_type(__a)) { }
+      : _M_t(_Key_alloc_type(__a)) { }
 
       /// Allocator-extended copy constructor.
       set(const set& __x, const allocator_type& __a)
@@ -263,14 +263,14 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
 
       /// Allocator-extended initialier-list constructor.
       set(initializer_list<value_type> __l, const allocator_type& __a)
-      : _M_t(_Compare(), _Key_alloc_type(__a))
+      : _M_t(_Key_alloc_type(__a))
       { _M_t._M_insert_unique(__l.begin(), __l.end()); }
 
       /// Allocator-extended range constructor.
       template<typename _InputIterator>
        set(_InputIterator __first, _InputIterator __last,
            const allocator_type& __a)
-       : _M_t(_Compare(), _Key_alloc_type(__a))
+       : _M_t(_Key_alloc_type(__a))
        { _M_t._M_insert_unique(__first, __last); }
 
       /**
index b87d6143e26658ce121c138e1ec51ef83c6b1722..2403eba8eb3d6417025f933bce03df5b9b3e8557 100644 (file)
@@ -715,6 +715,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 #else
          _Rb_tree_impl(_Rb_tree_impl&&) = default;
 
+         explicit
+         _Rb_tree_impl(_Node_allocator&& __a)
+         : _Node_allocator(std::move(__a))
+         { }
+
          _Rb_tree_impl(_Rb_tree_impl&& __x, _Node_allocator&& __a)
          : _Node_allocator(std::move(__a)),
            _Base_key_compare(std::move(__x)),
@@ -948,7 +953,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
 #if __cplusplus >= 201103L
       _Rb_tree(const allocator_type& __a)
-      : _M_impl(_Compare(), _Node_allocator(__a))
+      : _M_impl(_Node_allocator(__a))
       { }
 
       _Rb_tree(const _Rb_tree& __x, const allocator_type& __a)