diff --git a/libcxx/include/map b/libcxx/include/map index 6c271392911dc..2070c91cfc46d 100644 --- a/libcxx/include/map +++ b/libcxx/include/map @@ -972,31 +972,15 @@ public: _LIBCPP_HIDE_FROM_ABI map(const map& __m) : __tree_(__m.__tree_) { insert(__m.begin(), __m.end()); } - _LIBCPP_HIDE_FROM_ABI map& operator=(const map& __m) { -# ifndef _LIBCPP_CXX03_LANG - __tree_ = __m.__tree_; -# else - if (this != std::addressof(__m)) { - __tree_.clear(); - __tree_.value_comp() = __m.__tree_.value_comp(); - __tree_.__copy_assign_alloc(__m.__tree_); - insert(__m.begin(), __m.end()); - } -# endif - return *this; - } + _LIBCPP_HIDE_FROM_ABI map& operator=(const map& __m) = default; # ifndef _LIBCPP_CXX03_LANG - _LIBCPP_HIDE_FROM_ABI map(map&& __m) noexcept(is_nothrow_move_constructible<__base>::value) - : __tree_(std::move(__m.__tree_)) {} + _LIBCPP_HIDE_FROM_ABI map(map&& __m) noexcept(is_nothrow_move_constructible<__base>::value) = default; _LIBCPP_HIDE_FROM_ABI map(map&& __m, const allocator_type& __a); - _LIBCPP_HIDE_FROM_ABI map& operator=(map&& __m) noexcept(is_nothrow_move_assignable<__base>::value) { - __tree_ = std::move(__m.__tree_); - return *this; - } + _LIBCPP_HIDE_FROM_ABI map& operator=(map&& __m) noexcept(is_nothrow_move_assignable<__base>::value) = default; _LIBCPP_HIDE_FROM_ABI map(initializer_list __il, const key_compare& __comp = key_compare()) : __tree_(__vc(__comp)) { @@ -1659,31 +1643,16 @@ public: insert(__m.begin(), __m.end()); } - _LIBCPP_HIDE_FROM_ABI multimap& operator=(const multimap& __m) { -# ifndef _LIBCPP_CXX03_LANG - __tree_ = __m.__tree_; -# else - if (this != std::addressof(__m)) { - __tree_.clear(); - __tree_.value_comp() = __m.__tree_.value_comp(); - __tree_.__copy_assign_alloc(__m.__tree_); - insert(__m.begin(), __m.end()); - } -# endif - return *this; - } + _LIBCPP_HIDE_FROM_ABI multimap& operator=(const multimap& __m) = default; # ifndef _LIBCPP_CXX03_LANG - _LIBCPP_HIDE_FROM_ABI multimap(multimap&& __m) noexcept(is_nothrow_move_constructible<__base>::value) - : __tree_(std::move(__m.__tree_)) {} + _LIBCPP_HIDE_FROM_ABI multimap(multimap&& __m) noexcept(is_nothrow_move_constructible<__base>::value) = default; _LIBCPP_HIDE_FROM_ABI multimap(multimap&& __m, const allocator_type& __a); - _LIBCPP_HIDE_FROM_ABI multimap& operator=(multimap&& __m) noexcept(is_nothrow_move_assignable<__base>::value) { - __tree_ = std::move(__m.__tree_); - return *this; - } + _LIBCPP_HIDE_FROM_ABI multimap& + operator=(multimap&& __m) noexcept(is_nothrow_move_assignable<__base>::value) = default; _LIBCPP_HIDE_FROM_ABI multimap(initializer_list __il, const key_compare& __comp = key_compare()) : __tree_(__vc(__comp)) { diff --git a/libcxx/include/set b/libcxx/include/set index aeea98adf582b..480aa0ca0b0c1 100644 --- a/libcxx/include/set +++ b/libcxx/include/set @@ -662,14 +662,10 @@ public: _LIBCPP_HIDE_FROM_ABI set(const set& __s) : __tree_(__s.__tree_) { insert(__s.begin(), __s.end()); } - _LIBCPP_HIDE_FROM_ABI set& operator=(const set& __s) { - __tree_ = __s.__tree_; - return *this; - } + _LIBCPP_HIDE_FROM_ABI set& operator=(const set& __s) = default; # ifndef _LIBCPP_CXX03_LANG - _LIBCPP_HIDE_FROM_ABI set(set&& __s) noexcept(is_nothrow_move_constructible<__base>::value) - : __tree_(std::move(__s.__tree_)) {} + _LIBCPP_HIDE_FROM_ABI set(set&& __s) noexcept(is_nothrow_move_constructible<__base>::value) = default; # endif // _LIBCPP_CXX03_LANG _LIBCPP_HIDE_FROM_ABI explicit set(const allocator_type& __a) : __tree_(__a) {} @@ -1129,14 +1125,10 @@ public: insert(__s.begin(), __s.end()); } - _LIBCPP_HIDE_FROM_ABI multiset& operator=(const multiset& __s) { - __tree_ = __s.__tree_; - return *this; - } + _LIBCPP_HIDE_FROM_ABI multiset& operator=(const multiset& __s) = default; # ifndef _LIBCPP_CXX03_LANG - _LIBCPP_HIDE_FROM_ABI multiset(multiset&& __s) noexcept(is_nothrow_move_constructible<__base>::value) - : __tree_(std::move(__s.__tree_)) {} + _LIBCPP_HIDE_FROM_ABI multiset(multiset&& __s) noexcept(is_nothrow_move_constructible<__base>::value) = default; _LIBCPP_HIDE_FROM_ABI multiset(multiset&& __s, const allocator_type& __a); # endif // _LIBCPP_CXX03_LANG