aboutsummaryrefslogtreecommitdiff
path: root/src/common/Containers/Utilities/MapUtils.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-02-23 11:33:53 +0100
committerShauren <shauren.trinity@gmail.com>2025-02-23 11:33:53 +0100
commit67418a1aeee9035234d304b5e9653b832488dd66 (patch)
treed09fea9a2824e77e4f3ffa8b73ddef765328b081 /src/common/Containers/Utilities/MapUtils.h
parentda07737f9f86ebae1de3b8204921373539530ab8 (diff)
Core/Utils: Added map key/value utility projections for std::ranges algorithms
Diffstat (limited to 'src/common/Containers/Utilities/MapUtils.h')
-rw-r--r--src/common/Containers/Utilities/MapUtils.h11
1 files changed, 11 insertions, 0 deletions
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