diff options
author | 2016-10-27 15:44:54 +0000 | |
---|---|---|
committer | 2016-10-27 15:44:55 +0000 | |
commit | 384cb6674b967a9c58da9ad70fd6f98caa1d8691 (patch) | |
tree | b75a3309609ebbcd0d9d8d8b4297db82e80e988a /runtime/base/iteration_range.h | |
parent | a908348b4388854dab0b655b55dbeac1ecec2949 (diff) | |
parent | 2c45bc9137c29f886e69923535aff31a74d90829 (diff) |
Merge "Remove H[Reverse]PostOrderIterator and HInsertionOrderIterator."
Diffstat (limited to 'runtime/base/iteration_range.h')
-rw-r--r-- | runtime/base/iteration_range.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/runtime/base/iteration_range.h b/runtime/base/iteration_range.h index 54ab174dff..9d45707596 100644 --- a/runtime/base/iteration_range.h +++ b/runtime/base/iteration_range.h @@ -54,6 +54,17 @@ inline IterationRange<Iter> MakeEmptyIterationRange(const Iter& it) { return IterationRange<Iter>(it, it); } +template <typename Container> +inline auto ReverseRange(Container& c) { + typedef typename std::reverse_iterator<decltype(c.begin())> riter; + return MakeIterationRange(riter(c.end()), riter(c.begin())); +} + +template <typename T, size_t size> +inline auto ReverseRange(T (&array)[size]) { + return ReverseRange(MakeIterationRange<T*>(array, array+size)); +} + } // namespace art #endif // ART_RUNTIME_BASE_ITERATION_RANGE_H_ |