aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/Containers/FlatSet.h2
-rw-r--r--src/common/Containers/Utilities/MapUtils.h11
-rw-r--r--src/common/Utilities/Tuples.h3
3 files changed, 15 insertions, 1 deletions
diff --git a/src/common/Containers/FlatSet.h b/src/common/Containers/FlatSet.h
index 5602ba17254..2a94282794a 100644
--- a/src/common/Containers/FlatSet.h
+++ b/src/common/Containers/FlatSet.h
@@ -70,7 +70,7 @@ public:
return { _storage.emplace(itr, std::move(newElement)), true };
}
- std::pair<iterator, bool> insert(Key const& key) { return emplace(key); }
+ std::pair<iterator, bool> insert(Key const& key) { return this->emplace(key); }
std::size_t erase(Key const& key)
{
diff --git a/src/common/Containers/Utilities/MapUtils.h b/src/common/Containers/Utilities/MapUtils.h
index cb76a9d0579..e4cf6309bef 100644
--- a/src/common/Containers/Utilities/MapUtils.h
+++ b/src/common/Containers/Utilities/MapUtils.h
@@ -65,5 +65,16 @@ void MultimapErasePair(M& multimap, typename M::key_type const& key, typename M:
++itr;
}
}
+
+/**
+ * Map key projection for various std::ranges algorithms
+ */
+inline constexpr auto MapKey = []<typename Pair>(Pair&& pair) constexpr -> decltype(auto) { return (std::forward<Pair>(pair).first); /*Parentheses required for decltype(auto) to deduce a reference*/ };
+
+/**
+ * Map value projection for various std::ranges algorithms
+ */
+inline constexpr auto MapValue = []<typename Pair>(Pair&& pair) constexpr -> decltype(auto) { return (std::forward<Pair>(pair).second); /*Parentheses required for decltype(auto) to deduce a reference*/
+};
}
#endif // TRINITYCORE_MAP_UTILS_H
diff --git a/src/common/Utilities/Tuples.h b/src/common/Utilities/Tuples.h
index 8b608fd8901..e1c8142166f 100644
--- a/src/common/Utilities/Tuples.h
+++ b/src/common/Utilities/Tuples.h
@@ -60,6 +60,9 @@ namespace Trinity
{
return Impl::new_from_tuple<T>(std::forward<Tuple>(args), std::make_index_sequence<std::tuple_size_v<std::remove_reference_t<Tuple>>>{});
}
+
+ template <std::size_t I>
+ inline constexpr auto TupleElement = []<typename Tuple>(Tuple&& tuple) constexpr -> decltype(auto) { return std::get<I>(std::forward<Tuple>(tuple)); };
}
#endif // Tuples_h__