]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: std::inplace_vector implementation cleaup
authorFrançois Dumont <frs.dumont@gmail.com>
Mon, 22 Sep 2025 16:54:46 +0000 (18:54 +0200)
committerFrançois Dumont <fdumont@gcc.gnu.org>
Tue, 30 Sep 2025 19:59:16 +0000 (21:59 +0200)
Remove duplicated std::swap implementation.

libstdc++-v3/ChangeLog

* include/std/inplace_vector:
(std::swap(inplace_vector<>&, inplace_vector<>&)): Remove the duplicated
implementation at std namespace level. Keep the friend inline one.
(inplace_vector<Tp, 0>::assign(initializer_list<>)): Add missing return
statement.

libstdc++-v3/include/std/inplace_vector

index 91ceace08f5bb1a3db944707a178759c75080121..7aa6f9d4ab28941cd971339da1d1993cbc3dc694 100644 (file)
@@ -823,6 +823,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
                                                      __detail::__synth3way);
       }
 
+      // [inplace.vector.special], specialized algorithms
       constexpr friend void
       swap(inplace_vector& __x, inplace_vector& __y)
       noexcept(is_nothrow_swappable_v<_Tp> && is_nothrow_move_constructible_v<_Tp>)
@@ -907,13 +908,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        }
     };
 
-  // [inplace.vector.special], specialized algorithms
-  template<typename _Tp, size_t _Nm>
-    constexpr void
-    swap(inplace_vector<_Tp, _Nm>& __x, inplace_vector<_Tp, _Nm>& __y)
-    noexcept(noexcept(__x.swap(__y)))
-    { __x.swap(__y); }
-
   // specialization for zero capacity, that is required to be trivally copyable
   // and empty regardless of _Tp.
   template<typename _Tp>
@@ -992,6 +986,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       {
        if (__il.size() != 0)
          __throw_bad_alloc();
+       return *this;
       }
 
       template<__any_input_iterator _InputIterator>