aboutsummaryrefslogtreecommitdiff
path: root/src/common/Utilities/IteratorPair.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-01-06 16:54:16 +0100
committerShauren <shauren.trinity@gmail.com>2023-01-06 16:54:16 +0100
commite8e330addd55dffa8e34716c7e1969ad243d65b3 (patch)
tree2e5cd08a6d1758d9867cc5c4b8aca4591d0e931d /src/common/Utilities/IteratorPair.h
parentb65c3f5f4a4edbc953c405bfacd33f186f3a1931 (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.h22
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