ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::ranges::enumerate_view< range_itr_t, incr_t > Class Template Reference

Enumerates the elements of a range on the fly. More...

#include <detray/utils/ranges/enumerate.hpp>

Inheritance diagram for detray::ranges::enumerate_view< range_itr_t, incr_t >:
[legend]
Collaboration diagram for detray::ranges::enumerate_view< range_itr_t, incr_t >:
[legend]

Public Types

using iterator_t = iterator
 Iterator yielding each element together with its enumeration index.

Public Member Functions

constexpr enumerate_view ()=default
 Default constructor (only works if imrementable_t is default constructible).
template<detray::ranges::range range_t>
requires (!std::same_as<range_t, enumerate_view>)
constexpr enumerate_view (range_t &&rng)
 Construct from a rng that will be enumerated beginning at 0.
template<detray::ranges::range range_t>
constexpr enumerate_view (range_t &&rng, incr_t start)
 Enumerate rng beginning at start.
constexpr auto begin () -> iterator
constexpr auto begin () const -> iterator
constexpr auto end () const -> iterator
Public Member Functions inherited from detray::ranges::view_interface< enumerate_view< range_itr_t, incr_t > >
constexpr decltype(auto) back () const
 Return a reference to the last element.
constexpr auto data () const
 Return a pointer to the first element, or null for an empty view.
constexpr auto empty () const -> bool
 Check whether the view contains no elements.
constexpr decltype(auto) front () const
 Return a reference to the first element.
constexpr operator bool () const
 Test whether the view contains at least one element.
constexpr decltype(auto) operator[] (const dindex i) const
 Subscript operator that takes detray dindex.
constexpr auto size () const
 Return the number of elements in the view.

Detailed Description

template<std::input_iterator range_itr_t, std::incrementable incr_t>
class detray::ranges::enumerate_view< range_itr_t, incr_t >

Enumerates the elements of a range on the fly.

Template Parameters
range_itr_tthe iterator type of the enumerated range
incr_ta type that can be incremented in lockstep with the iterator 'range_itr_t'.
Note
Does not take ownership of the range it operates on. Its lifetime needs to be guaranteed throughout iteration or between iterations with the same enumerate instance.
Is not fit for lazy evaluation.

Constructor & Destructor Documentation

◆ enumerate_view() [1/2]

template<std::input_iterator range_itr_t, std::incrementable incr_t>
template<detray::ranges::range range_t>
requires (!std::same_as<range_t, enumerate_view>)
detray::ranges::enumerate_view< range_itr_t, incr_t >::enumerate_view ( range_t && rng)
explicitconstexpr

Construct from a rng that will be enumerated beginning at 0.

Parameters
rngrange to enumerate

◆ enumerate_view() [2/2]

template<std::input_iterator range_itr_t, std::incrementable incr_t>
template<detray::ranges::range range_t>
detray::ranges::enumerate_view< range_itr_t, incr_t >::enumerate_view ( range_t && rng,
incr_t start )
constexpr

Enumerate rng beginning at start.

Parameters
rngrange to enumerate
startinitial index

Member Function Documentation

◆ begin() [1/2]

template<std::input_iterator range_itr_t, std::incrementable incr_t>
auto detray::ranges::enumerate_view< range_itr_t, incr_t >::begin ( ) ->iterator
constexpr
Returns
start position of range on container.

◆ begin() [2/2]

template<std::input_iterator range_itr_t, std::incrementable incr_t>
auto detray::ranges::enumerate_view< range_itr_t, incr_t >::begin ( ) const->iterator
constexpr
Returns
start position of range on container - const

◆ end()

template<std::input_iterator range_itr_t, std::incrementable incr_t>
auto detray::ranges::enumerate_view< range_itr_t, incr_t >::end ( ) const->iterator
constexpr
Returns
sentinel of a sequence.