ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::ranges::view_interface< view_impl_t > Class Template Reference

Defines a detray 'view'. More...

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

Inheritance diagram for detray::ranges::view_interface< view_impl_t >:
[legend]
Collaboration diagram for detray::ranges::view_interface< view_impl_t >:
[legend]

Public Member Functions

template<detray::ranges::bidirectional_range R = view_impl_t>
constexpr decltype(auto) back ()
 Return a writable reference to the last element.
template<detray::ranges::bidirectional_range R = view_impl_t>
constexpr decltype(auto) back () const
 Return a reference to the last element.
constexpr auto data ()
 Return a writable pointer to the first element, or null if empty.
constexpr auto data () const
 Return a pointer to the first element, or null for an empty view.
template<detray::ranges::forward_range R = view_impl_t>
constexpr auto empty () const -> bool
 Check whether the view contains no elements.
template<detray::ranges::forward_range R = view_impl_t>
constexpr decltype(auto) front ()
 Return a writable reference to the first element.
template<detray::ranges::forward_range R = view_impl_t>
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.
template<detray::ranges::random_access_range R = view_impl_t>
constexpr decltype(auto) operator[] (const dindex i)
 Subscript operator that takes detray dindex.
template<detray::ranges::random_access_range R = view_impl_t>
constexpr decltype(auto) operator[] (const dindex i) const
 Subscript operator that takes detray dindex.
template<detray::ranges::forward_range R = view_impl_t>
constexpr auto size () const
 Return the number of elements in the view.

Detailed Description

template<typename view_impl_t>
class detray::ranges::view_interface< view_impl_t >

Defines a detray 'view'.

For now, the views have to restrict the member functions themselves (i.e. forward, bidirectional, random access)

Member Function Documentation

◆ back() [1/2]

template<typename view_impl_t>
template<detray::ranges::bidirectional_range R = view_impl_t>
decltype(auto) detray::ranges::view_interface< view_impl_t >::back ( )
constexpr

Return a writable reference to the last element.

Returns
reference to the last element
Note
requires bidirectional range

◆ back() [2/2]

template<typename view_impl_t>
template<detray::ranges::bidirectional_range R = view_impl_t>
decltype(auto) detray::ranges::view_interface< view_impl_t >::back ( ) const
constexpr

Return a reference to the last element.

Returns
reference to the last element
Note
requires bidirectional range

◆ data() [1/2]

template<typename view_impl_t>
auto detray::ranges::view_interface< view_impl_t >::data ( )
constexpr

Return a writable pointer to the first element, or null if empty.

Returns
pointer to the first element
Note
requires contiguous range (not yet modelled)

◆ data() [2/2]

template<typename view_impl_t>
auto detray::ranges::view_interface< view_impl_t >::data ( ) const
constexpr

Return a pointer to the first element, or null for an empty view.

Returns
pointer to the first element
Note
requires contiguous range (not yet modelled)

◆ empty()

template<typename view_impl_t>
template<detray::ranges::forward_range R = view_impl_t>
auto detray::ranges::view_interface< view_impl_t >::empty ( ) const->bool
constexpr

Check whether the view contains no elements.

Returns
true when the range is empty
Note
requires forward range

◆ front() [1/2]

template<typename view_impl_t>
template<detray::ranges::forward_range R = view_impl_t>
decltype(auto) detray::ranges::view_interface< view_impl_t >::front ( )
constexpr

Return a writable reference to the first element.

Returns
reference to the first element
Note
requires forward range

◆ front() [2/2]

template<typename view_impl_t>
template<detray::ranges::forward_range R = view_impl_t>
decltype(auto) detray::ranges::view_interface< view_impl_t >::front ( ) const
constexpr

Return a reference to the first element.

Returns
reference to the first element
Note
requires forward range

◆ operator bool()

template<typename view_impl_t>
detray::ranges::view_interface< view_impl_t >::operator bool ( ) const
explicitconstexpr

Test whether the view contains at least one element.

Returns
true when the view is nonempty

◆ operator[]() [1/2]

template<typename view_impl_t>
template<detray::ranges::random_access_range R = view_impl_t>
decltype(auto) detray::ranges::view_interface< view_impl_t >::operator[] ( const dindex i)
constexpr

Subscript operator that takes detray dindex.

Parameters
izero-based element index
Returns
writable reference to the element at i
Note
requires random access range

◆ operator[]() [2/2]

template<typename view_impl_t>
template<detray::ranges::random_access_range R = view_impl_t>
decltype(auto) detray::ranges::view_interface< view_impl_t >::operator[] ( const dindex i) const
constexpr

Subscript operator that takes detray dindex.

Parameters
izero-based element index
Returns
reference to the element at i
Note
requires random access range

◆ size()

template<typename view_impl_t>
template<detray::ranges::forward_range R = view_impl_t>
auto detray::ranges::view_interface< view_impl_t >::size ( ) const
constexpr

Return the number of elements in the view.

Returns
element count
Note
requires forward range