From bd5bd0da54d4f67b7a2b7213f4d13ca545d47373 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Fri, 29 Sep 2017 11:53:15 -0700 Subject: [PATCH] Support: remove local iterator_range implementation Rather than re-implement iterator_range, delegate to LLVM's implementation. --- include/glow/Support/ADT.h | 34 ++-------------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/include/glow/Support/ADT.h b/include/glow/Support/ADT.h index 5dfbd2e355..2970cafaaa 100644 --- a/include/glow/Support/ADT.h +++ b/include/glow/Support/ADT.h @@ -11,40 +11,10 @@ #include #include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/iterator_range.h" namespace glow { -/// \brief A range adaptor for a pair of iterators. -/// -/// This just wraps two iterators into a range-compatible interface. Nothing -/// fancy at all. -template class iterator_range { - IteratorT begin_iterator, end_iterator; - -public: - template - iterator_range(Container &&c) - : begin_iterator(c.begin()), end_iterator(c.end()) {} - iterator_range(IteratorT begin_iterator, IteratorT end_iterator) - : begin_iterator(std::move(begin_iterator)), - end_iterator(std::move(end_iterator)) {} - - IteratorT begin() const { return begin_iterator; } - IteratorT end() const { return end_iterator; } -}; - -/// \brief Convenience function for iterating over sub-ranges. -template iterator_range make_range(T x, T y) { - return iterator_range(std::move(x), std::move(y)); -} - -template iterator_range make_range(std::pair p) { - return iterator_range(std::move(p.first), std::move(p.second)); -} - -template -iterator_range()))> drop_begin(T &&t, int n) { - return make_range(std::next(begin(t), n), end(t)); -} +using llvm::iterator_range; using llvm::ArrayRef;