refactor iterator range utility class
This commit is contained in:
parent
e9e12b88f8
commit
8adab95973
@ -1,6 +1,6 @@
|
||||
/*
|
||||
|
||||
Copyright (c) 2013, Project OSRM contributors
|
||||
Copyright (c) 2015, Project OSRM contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
@ -25,17 +25,15 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef RANGE_HPP_
|
||||
#define RANGE_HPP_
|
||||
#ifndef ITERATOR_RANGE_HPP
|
||||
#define ITERATOR_RANGE_HPP
|
||||
|
||||
namespace osrm
|
||||
{
|
||||
namespace util
|
||||
{
|
||||
template <typename Iterator> class Range
|
||||
template <typename Iterator> class iter_range
|
||||
{
|
||||
public:
|
||||
Range(Iterator begin, Iterator end) : begin_(begin), end_(end) {}
|
||||
iter_range(Iterator begin, Iterator end) : begin_(begin), end_(end) {}
|
||||
|
||||
Iterator begin() const { return begin_; }
|
||||
Iterator end() const { return end_; }
|
||||
@ -48,25 +46,25 @@ template <typename Iterator> class Range
|
||||
// Convenience functions for template parameter inference,
|
||||
// akin to std::make_pair.
|
||||
|
||||
template <typename Iterator> Range<Iterator> range(Iterator begin, Iterator end)
|
||||
template <typename Iterator> iter_range<Iterator> integer_range(Iterator begin, Iterator end)
|
||||
{
|
||||
return Range<Iterator>(begin, end);
|
||||
return iter_range<Iterator>(begin, end);
|
||||
}
|
||||
|
||||
template <typename Reversable>
|
||||
Range<typename Reversable::reverse_iterator> reverse(Reversable *reversable)
|
||||
iter_range<typename Reversable::reverse_iterator> reverse(Reversable *reversable)
|
||||
{
|
||||
return Range<typename Reversable::reverse_iterator>(reversable->rbegin(), reversable->rend());
|
||||
return iter_range<typename Reversable::reverse_iterator>(reversable->rbegin(),
|
||||
reversable->rend());
|
||||
}
|
||||
|
||||
template <typename ConstReversable>
|
||||
Range<typename ConstReversable::const_reverse_iterator>
|
||||
iter_range<typename ConstReversable::const_reverse_iterator>
|
||||
const_reverse(const ConstReversable *const_reversable)
|
||||
{
|
||||
return Range<typename ConstReversable::const_reverse_iterator>(const_reversable->crbegin(),
|
||||
const_reversable->crend());
|
||||
}
|
||||
return iter_range<typename ConstReversable::const_reverse_iterator>(const_reversable->crbegin(),
|
||||
const_reversable->crend());
|
||||
}
|
||||
}
|
||||
|
||||
#endif // RANGE_HPP_
|
||||
#endif // ITERATOR_RANGE_HPP
|
||||
|
Loading…
Reference in New Issue
Block a user