diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h index 773b72e..25ab25d 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 __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 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 @@ -269,7 +269,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER */ template map(_InputIterator __first, _InputIterator __last) - : _M_t() { _M_t._M_insert_unique(__first, __last); } /** diff --git a/libstdc++-v3/include/bits/stl_multimap.h b/libstdc++-v3/include/bits/stl_multimap.h index 9845c01..fcfea88 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 __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 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 @@ -265,7 +265,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER */ template multimap(_InputIterator __first, _InputIterator __last) - : _M_t() { _M_t._M_insert_equal(__first, __last); } /** diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h index 38159ab..1155e55 100644 --- a/libstdc++-v3/include/bits/stl_multiset.h +++ b/libstdc++-v3/include/bits/stl_multiset.h @@ -185,7 +185,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER */ template multiset(_InputIterator __first, _InputIterator __last) - : _M_t() { _M_t._M_insert_equal(__first, __last); } /** @@ -245,7 +244,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 +258,14 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// Allocator-extended initialier-list constructor. multiset(initializer_list __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 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 913af9d..1dcec9f 100644 --- a/libstdc++-v3/include/bits/stl_set.h +++ b/libstdc++-v3/include/bits/stl_set.h @@ -189,7 +189,6 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER */ template set(_InputIterator __first, _InputIterator __last) - : _M_t() { _M_t._M_insert_unique(__first, __last); } /** @@ -249,7 +248,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 +262,14 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /// Allocator-extended initialier-list constructor. set(initializer_list __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 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 c4f08d2..a4bbee4 100644 --- a/libstdc++-v3/include/bits/stl_tree.h +++ b/libstdc++-v3/include/bits/stl_tree.h @@ -753,6 +753,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)), @@ -986,7 +991,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)