Skip to content
This repository was archived by the owner on Jul 1, 2025. It is now read-only.

Commit 3ba3a16

Browse files
authored
Merge pull request #8 from compnerd/iterator_range
Support: remove local iterator_range implementation
2 parents 2f8de5d + d83f21d commit 3ba3a16

File tree

1 file changed

+2
-32
lines changed
  • include/glow/Support

1 file changed

+2
-32
lines changed

include/glow/Support/ADT.h

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,41 +11,11 @@
1111
#include <vector>
1212

1313
#include "llvm/ADT/ArrayRef.h"
14+
#include "llvm/ADT/iterator_range.h"
1415
#include "llvm/ADT/StringRef.h"
1516

1617
namespace glow {
17-
/// \brief A range adaptor for a pair of iterators.
18-
///
19-
/// This just wraps two iterators into a range-compatible interface. Nothing
20-
/// fancy at all.
21-
template <typename IteratorT> class iterator_range {
22-
IteratorT begin_iterator, end_iterator;
23-
24-
public:
25-
template <typename Container>
26-
iterator_range(Container &&c)
27-
: begin_iterator(c.begin()), end_iterator(c.end()) {}
28-
iterator_range(IteratorT begin_iterator, IteratorT end_iterator)
29-
: begin_iterator(std::move(begin_iterator)),
30-
end_iterator(std::move(end_iterator)) {}
31-
32-
IteratorT begin() const { return begin_iterator; }
33-
IteratorT end() const { return end_iterator; }
34-
};
35-
36-
/// \brief Convenience function for iterating over sub-ranges.
37-
template <class T> iterator_range<T> make_range(T x, T y) {
38-
return iterator_range<T>(std::move(x), std::move(y));
39-
}
40-
41-
template <typename T> iterator_range<T> make_range(std::pair<T, T> p) {
42-
return iterator_range<T>(std::move(p.first), std::move(p.second));
43-
}
44-
45-
template <typename T>
46-
iterator_range<decltype(begin(std::declval<T>()))> drop_begin(T &&t, int n) {
47-
return make_range(std::next(begin(t), n), end(t));
48-
}
18+
using llvm::iterator_range;
4919

5020
using llvm::ArrayRef;
5121

0 commit comments

Comments
 (0)