class indexed_accessor_range_base

Declaration

template <typename DerivedT,
          typename BaseT,
          typename T,
          typename PointerT = T*,
          typename ReferenceT = T&>
class indexed_accessor_range_base { /* full declaration omitted */ };

Description

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.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1148

Templates

DerivedT
BaseT
T
PointerT = T *
ReferenceT = T &

Member Variables

protected BaseT base
The base that owns the provided range of values.
protected ptrdiff_t count
The size from the owning range.

Method Overview

Methods

ReferenceT back() const

Declared at: llvm/include/llvm/ADT/STLExtras.h:1188

llvm::detail::indexed_accessor_range_base::
    iterator
    begin() const

Declared at: llvm/include/llvm/ADT/STLExtras.h:1178

DerivedT drop_back(size_t n = 1) const

Description

Drop the last n elements.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1223

Parameters

size_t n = 1

DerivedT drop_front(size_t n = 1) const

Description

Drop the first n elements.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1218

Parameters

size_t n = 1

bool empty() const

Description

Return if the range is empty.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1209

llvm::detail::indexed_accessor_range_base::
    iterator
    end() const

Declared at: llvm/include/llvm/ADT/STLExtras.h:1179

ReferenceT front() const

Declared at: llvm/include/llvm/ADT/STLExtras.h:1184

const BaseT& getBase() const

Description

Returns the base of this range.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1248

indexed_accessor_range_base<DerivedT,
                            BaseT,
                            T,
                            PointerT,
                            ReferenceT>(
    const iterator_range<
        llvm::detail::
            indexed_accessor_range_base::
                iterator>& range)

Declared at: llvm/include/llvm/ADT/STLExtras.h:1173

Parameters

const iterator_range< llvm::detail::indexed_accessor_range_base:: iterator>& range

indexed_accessor_range_base<DerivedT,
                            BaseT,
                            T,
                            PointerT,
                            ReferenceT>(
    BaseT base,
    ptrdiff_t count)

Declared at: llvm/include/llvm/ADT/STLExtras.h:1175

Parameters

BaseT base
ptrdiff_t count

indexed_accessor_range_base<DerivedT,
                            BaseT,
                            T,
                            PointerT,
                            ReferenceT>(
    llvm::detail::indexed_accessor_range_base::
        iterator begin,
    llvm::detail::indexed_accessor_range_base::
        iterator end)

Declared at: llvm/include/llvm/ADT/STLExtras.h:1170

Parameters

llvm::detail::indexed_accessor_range_base:: iterator begin
llvm::detail::indexed_accessor_range_base:: iterator end

indexed_accessor_range_base<DerivedT,
                            BaseT,
                            T,
                            PointerT,
                            ReferenceT>(
    indexed_accessor_range_base<DerivedT,
                                BaseT,
                                T,
                                PointerT,
                                ReferenceT>&&)

Declared at: llvm/include/llvm/ADT/STLExtras.h:1258

Parameters

indexed_accessor_range_base<DerivedT, BaseT, T, PointerT, ReferenceT>&&

indexed_accessor_range_base<DerivedT,
                            BaseT,
                            T,
                            PointerT,
                            ReferenceT>(
    const indexed_accessor_range_base<
        DerivedT,
        BaseT,
        T,
        PointerT,
        ReferenceT>&)

Declared at: llvm/include/llvm/ADT/STLExtras.h:1257

Parameters

const indexed_accessor_range_base<DerivedT, BaseT, T, PointerT, ReferenceT>&

static BaseT offset_base(const BaseT& base,
                         size_t n)

Description

Offset the given base by the given amount.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1252

Parameters

const BaseT& base
size_t n

template <
    typename RangeT,
    typename =
        std::enable_if_t<std::is_constructible<
            RangeT,
            iterator_range<iterator>>::value>>
RangeT operator type - parameter - 1 - 0() const

Description

Allow conversion to any type accepting an iterator_range.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1243

Templates

RangeT
= std::enable_if_t<std::is_constructible<RangeT, iterator_range<iterator>>::value>

size_t size() const

Description

Return the size of this range.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1206

DerivedT slice(size_t n, size_t m) const

Description

Drop the first N elements, and keep M elements.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1212

Parameters

size_t n
size_t m

DerivedT take_back(size_t n = 1) const

Description

Take the last n elements.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1235

Parameters

size_t n = 1

DerivedT take_front(size_t n = 1) const

Description

Take the first n elements.

Declared at: llvm/include/llvm/ADT/STLExtras.h:1229

Parameters

size_t n = 1