libstdc++: std::inplace_vector implementation cleaup

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.
This commit is contained in:
François Dumont
2025-09-22 18:54:46 +02:00
committed by François Dumont
parent 3ea8d691e8
commit 2f5f3eef1d

View 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>