|
|
@@ -997,8 +997,8 @@ public:
|
|
|
*/
|
|
|
template<typename Compare, typename Sort = std_sort, typename... Args>
|
|
|
void sort(Compare compare, Sort algo = Sort{}, Args &&...args) {
|
|
|
- const size_type len[]{packed.size(), head};
|
|
|
- sort_n(len[mode == deletion_policy::swap_only], std::move(compare), std::move(algo), std::forward<Args>(args)...);
|
|
|
+ const size_type len = (mode == deletion_policy::swap_only) ? head : packed.size();
|
|
|
+ sort_n(len, std::move(compare), std::move(algo), std::forward<Args>(args)...);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1017,8 +1017,8 @@ public:
|
|
|
template<typename It>
|
|
|
iterator sort_as(It first, It last) {
|
|
|
ENTT_ASSERT((mode != deletion_policy::in_place) || (head == max_size), "Sorting with tombstones not allowed");
|
|
|
- const size_type len[]{packed.size(), head};
|
|
|
- auto it = end() - static_cast<typename iterator::difference_type>(len[mode == deletion_policy::swap_only]);
|
|
|
+ const size_type len = (mode == deletion_policy::swap_only) ? head : packed.size();
|
|
|
+ auto it = end() - static_cast<typename iterator::difference_type>(len);
|
|
|
|
|
|
for(const auto other = end(); (it != other) && (first != last); ++first) {
|
|
|
if(const auto curr = *first; contains(curr)) {
|