diff --git a/src/common/Utilities/IteratorPair.h b/src/common/Utilities/IteratorPair.h index d289bcce8c..5d24c931ef 100644 --- a/src/common/Utilities/IteratorPair.h +++ b/src/common/Utilities/IteratorPair.h @@ -18,7 +18,6 @@ #ifndef IteratorPair_h__ #define IteratorPair_h__ -#include "Define.h" #include namespace Trinity @@ -32,12 +31,12 @@ namespace Trinity class IteratorPair { public: - IteratorPair() : _iterators() { } - IteratorPair(iterator first, iterator second) : _iterators(first, second) { } - IteratorPair(std::pair iterators) : _iterators(iterators) { } + constexpr IteratorPair() : _iterators() { } + constexpr IteratorPair(iterator first, iterator second) : _iterators(first, second) { } + constexpr IteratorPair(std::pair iterators) : _iterators(iterators) { } - iterator begin() const { return _iterators.first; } - iterator end() const { return _iterators.second; } + constexpr iterator begin() const { return _iterators.first; } + constexpr iterator end() const { return _iterators.second; } private: std::pair _iterators; @@ -45,6 +44,18 @@ namespace Trinity namespace Containers { + template + constexpr Trinity::IteratorPair MakeIteratorPair(iterator first, iterator second) + { + return { first, second }; + } + + template + constexpr Trinity::IteratorPair MakeIteratorPair(std::pair iterators) + { + return iterators; + } + template inline auto MapEqualRange(M& map, typename M::key_type const& key) -> IteratorPair {