19 #ifndef LLVM_ADT_ITERATOR_RANGE_H 20 #define LLVM_ADT_ITERATOR_RANGE_H 31 template <
typename IteratorT>
33 IteratorT begin_iterator, end_iterator;
38 template <
typename Container>
41 : begin_iterator(c.
begin()), end_iterator(c.
end()) {}
43 : begin_iterator(
std::move(begin_iterator)),
44 end_iterator(
std::move(end_iterator)) {}
46 IteratorT
begin()
const {
return begin_iterator; }
47 IteratorT
end()
const {
return end_iterator; }
This class represents lattice values for constants.
auto adl_begin(ContainerTy &&container) -> decltype(adl_detail::adl_begin(std::forward< ContainerTy >(container)))
iterator_range< decltype(adl_begin(std::declval< T >)))> drop_begin(T &&t, int n)
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.
iterator_range(Container &&c)
A range adaptor for a pair of iterators.
iterator_range(IteratorT begin_iterator, IteratorT end_iterator)
auto adl_end(ContainerTy &&container) -> decltype(adl_detail::adl_end(std::forward< ContainerTy >(container)))