diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-01-06 16:54:16 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-01-06 16:54:16 +0100 |
commit | e8e330addd55dffa8e34716c7e1969ad243d65b3 (patch) | |
tree | 2e5cd08a6d1758d9867cc5c4b8aca4591d0e931d /src/common/Utilities/IteratorPair.h | |
parent | b65c3f5f4a4edbc953c405bfacd33f186f3a1931 (diff) |
Core/Misc: Remove boost::heap::fibonacci_heap from header files
Diffstat (limited to 'src/common/Utilities/IteratorPair.h')
-rw-r--r-- | src/common/Utilities/IteratorPair.h | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/common/Utilities/IteratorPair.h b/src/common/Utilities/IteratorPair.h index 5d24c931ef2..0782862d20d 100644 --- a/src/common/Utilities/IteratorPair.h +++ b/src/common/Utilities/IteratorPair.h @@ -27,39 +27,39 @@ namespace Trinity * * @brief Utility class to enable range for loop syntax for multimap.equal_range uses */ - template<class iterator> + template<class iterator, class end_iterator = iterator> class IteratorPair { public: constexpr IteratorPair() : _iterators() { } - constexpr IteratorPair(iterator first, iterator second) : _iterators(first, second) { } - constexpr IteratorPair(std::pair<iterator, iterator> iterators) : _iterators(iterators) { } + constexpr IteratorPair(iterator first, end_iterator second) : _iterators(first, second) { } + constexpr IteratorPair(std::pair<iterator, end_iterator> iterators) : _iterators(iterators) { } constexpr iterator begin() const { return _iterators.first; } - constexpr iterator end() const { return _iterators.second; } + constexpr end_iterator end() const { return _iterators.second; } private: - std::pair<iterator, iterator> _iterators; + std::pair<iterator, end_iterator> _iterators; }; namespace Containers { - template<typename iterator> - constexpr Trinity::IteratorPair<iterator> MakeIteratorPair(iterator first, iterator second) + template<typename iterator, class end_iterator = iterator> + constexpr IteratorPair<iterator, end_iterator> MakeIteratorPair(iterator first, end_iterator second) { return { first, second }; } - template<typename iterator> - constexpr Trinity::IteratorPair<iterator> MakeIteratorPair(std::pair<iterator, iterator> iterators) + template<typename iterator, class end_iterator = iterator> + constexpr IteratorPair<iterator, end_iterator> MakeIteratorPair(std::pair<iterator, end_iterator> iterators) { return iterators; } template<class M> - inline auto MapEqualRange(M& map, typename M::key_type const& key) -> IteratorPair<decltype(map.begin())> + auto MapEqualRange(M& map, typename M::key_type const& key) { - return { map.equal_range(key) }; + return MakeIteratorPair(map.equal_range(key)); } } //! namespace Containers |