forked from mpusz/mp-units
feat: custom implementation of swap_ranges
added
This commit is contained in:
@@ -131,4 +131,18 @@ constexpr OutputIt copy(InputIt first, InputIt last, OutputIt d_first)
|
||||
return d_first;
|
||||
}
|
||||
|
||||
template<class ForwardIt1, class ForwardIt2>
|
||||
constexpr void iter_swap(ForwardIt1 a, ForwardIt2 b)
|
||||
{
|
||||
using std::swap;
|
||||
swap(*a, *b);
|
||||
}
|
||||
|
||||
template<class ForwardIt1, class ForwardIt2>
|
||||
constexpr ForwardIt2 swap_ranges(ForwardIt1 first1, ForwardIt1 last1, ForwardIt2 first2)
|
||||
{
|
||||
for (; first1 != last1; ++first1, ++first2) iter_swap(first1, first2);
|
||||
return first2;
|
||||
}
|
||||
|
||||
} // namespace mp_units::detail
|
||||
|
@@ -141,7 +141,7 @@ public:
|
||||
}
|
||||
|
||||
// modifiers
|
||||
constexpr void swap(basic_fixed_string& s) noexcept { std::swap_ranges(begin(), end(), s.begin()); }
|
||||
constexpr void swap(basic_fixed_string& s) noexcept { swap_ranges(begin(), end(), s.begin()); }
|
||||
|
||||
// string operations
|
||||
[[nodiscard]] constexpr const_pointer c_str() const noexcept { return data(); }
|
||||
|
Reference in New Issue
Block a user