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.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification,
|
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_
|
#ifndef ITERATOR_RANGE_HPP
|
||||||
#define RANGE_HPP_
|
#define ITERATOR_RANGE_HPP
|
||||||
|
|
||||||
namespace osrm
|
namespace osrm
|
||||||
{
|
{
|
||||||
namespace util
|
template <typename Iterator> class iter_range
|
||||||
{
|
|
||||||
template <typename Iterator> class Range
|
|
||||||
{
|
{
|
||||||
public:
|
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 begin() const { return begin_; }
|
||||||
Iterator end() const { return end_; }
|
Iterator end() const { return end_; }
|
||||||
@ -48,25 +46,25 @@ template <typename Iterator> class Range
|
|||||||
// Convenience functions for template parameter inference,
|
// Convenience functions for template parameter inference,
|
||||||
// akin to std::make_pair.
|
// 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>
|
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>
|
template <typename ConstReversable>
|
||||||
Range<typename ConstReversable::const_reverse_iterator>
|
iter_range<typename ConstReversable::const_reverse_iterator>
|
||||||
const_reverse(const ConstReversable *const_reversable)
|
const_reverse(const ConstReversable *const_reversable)
|
||||||
{
|
{
|
||||||
return Range<typename ConstReversable::const_reverse_iterator>(const_reversable->crbegin(),
|
return iter_range<typename ConstReversable::const_reverse_iterator>(const_reversable->crbegin(),
|
||||||
const_reversable->crend());
|
const_reversable->crend());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // RANGE_HPP_
|
#endif // ITERATOR_RANGE_HPP
|
||||||
|
Loading…
Reference in New Issue
Block a user