mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-05 13:14:29 +02:00
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;
|
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
|
} // namespace mp_units::detail
|
||||||
|
@@ -141,7 +141,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// modifiers
|
// 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
|
// string operations
|
||||||
[[nodiscard]] constexpr const_pointer c_str() const noexcept { return data(); }
|
[[nodiscard]] constexpr const_pointer c_str() const noexcept { return data(); }
|
||||||
|
Reference in New Issue
Block a user