aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog23
-rw-r--r--libstdc++-v3/include/bits/stl_map.h6
-rw-r--r--libstdc++-v3/include/bits/stl_multimap.h6
-rw-r--r--libstdc++-v3/include/bits/stl_multiset.h6
-rw-r--r--libstdc++-v3/include/bits/stl_set.h6
-rw-r--r--libstdc++-v3/include/bits/stl_tree.h7
6 files changed, 41 insertions, 13 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 02b8557..3068a08 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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
diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h
index a4a026e..b81a2c4 100644
--- a/libstdc++-v3/include/bits/stl_map.h
+++ b/libstdc++-v3/include/bits/stl_map.h
@@ -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
diff --git a/libstdc++-v3/include/bits/stl_multimap.h b/libstdc++-v3/include/bits/stl_multimap.h
index fc8f454..23332ee 100644
--- a/libstdc++-v3/include/bits/stl_multimap.h
+++ b/libstdc++-v3/include/bits/stl_multimap.h
@@ -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
diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h
index f41f56c..829bc96 100644
--- a/libstdc++-v3/include/bits/stl_multiset.h
+++ b/libstdc++-v3/include/bits/stl_multiset.h
@@ -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); }
/**
diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h
index 2e332ef..4192526 100644
--- a/libstdc++-v3/include/bits/stl_set.h
+++ b/libstdc++-v3/include/bits/stl_set.h
@@ -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); }
/**
diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h
index b87d614..2403eba8 100644
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -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)