LLVM: llvm::detail::indexed_accessor_range_base< DerivedT, BaseT, T, PointerT, ReferenceT (original) (raw)
The class represents the base of a range of indexed_accessor_iterators. More...
#include "[llvm/ADT/STLExtras.h](STLExtras%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| indexed_accessor_range_base (iterator begin, iterator end) | |
| indexed_accessor_range_base (const iterator_range< iterator > &range) | |
| indexed_accessor_range_base (BaseT base, ptrdiff_t count) | |
| iterator | begin () const |
| iterator | end () const |
| ReferenceT | operator[] (size_t Index) const |
| ReferenceT | front () const |
| ReferenceT | back () const |
| size_t | size () const |
| Return the size of this range. | |
| bool | empty () const |
| Return if the range is empty. | |
| DerivedT | slice (size_t n, size_t m) const |
| Drop the first N elements, and keep M elements. | |
| DerivedT | drop_front (size_t n=1) const |
| Drop the first n elements. | |
| DerivedT | drop_back (size_t n=1) const |
| Drop the last n elements. | |
| DerivedT | take_front (size_t n=1) const |
| Take the first n elements. | |
| DerivedT | take_back (size_t n=1) const |
| Take the last n elements. | |
| template<typename RangeT, typename = std::enable_if_t<std::is_constructible< RangeT, iterator_range>::value>> | |
| operator RangeT () const | |
| Allow conversion to any type accepting an iterator_range. | |
| const BaseT & | getBase () const |
| Returns the base of this range. |
| Protected Attributes | |
|---|---|
| BaseT | base |
| The base that owns the provided range of values. | |
| ptrdiff_t | count |
| The size from the owning range. |
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
class llvm::detail::indexed_accessor_range_base< DerivedT, BaseT, T, PointerT, ReferenceT >
The class represents the base of a range of indexed_accessor_iterators.
It provides support for many different range functionalities, e.g. drop_front/slice/etc.. Derived range classes must implement the following static methods:
- ReferenceT dereference_iterator(const BaseT &base, ptrdiff_t index)
- Dereference an iterator pointing to the base object at the given index.
- BaseT offset_base(const BaseT &base, ptrdiff_t index)
- Return a new base that is offset from the provide base by 'index' elements.
Definition at line 1214 of file STLExtras.h.
◆ RangeBaseT
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ indexed_accessor_range_base() [2/5]
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ indexed_accessor_range_base() [3/5]
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ indexed_accessor_range_base() [4/5]
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ indexed_accessor_range_base() [5/5]
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ back()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ begin()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ drop_back()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ drop_front()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ empty()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ end()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ front()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ getBase()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ operator RangeT()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
template<typename RangeT, typename = std::enable_if_t<std::is_constructible< RangeT, iterator_range>::value>>
◆ operator=()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ operator[]()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ size()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ slice()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ take_back()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ take_front()
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ base
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
◆ count
template<typename DerivedT, typename BaseT, typename T, typename PointerT = T *, typename ReferenceT = T &>
The documentation for this class was generated from the following file:
- include/llvm/ADT/STLExtras.h