ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::ranges::views::join< range_t > Struct Template Reference

interface type to construct a join_view with CTAD More...

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

Inheritance diagram for detray::ranges::views::join< range_t >:
[legend]
Collaboration diagram for detray::ranges::views::join< range_t >:
[legend]

Public Types

using base_type = detray::ranges::join_view<range_t>
 Base joined-range implementation.
Public Types inherited from detray::ranges::join_view< range_t >
using inner_iterator_t = detray::ranges::iterator_t<outer_value_t>
 Iterator over a single range.
using iterator_t = detray::ranges::detail::join_iterator<range_t>
 Iterator that walks across all nested ranges.
using outer_iterator_t = detray::ranges::iterator_t<range_t>
 Iterator over the range of ranges.
using outer_value_t
 Type of a single range.
using value_t = std::iter_value_t<iterator_t>
 Element value type yielded by the joined view.

Public Member Functions

template<detray::ranges::range deduced_range_t>
requires (!std::same_as<deduced_range_t, join>)
constexpr join (deduced_range_t &&ranges)
 Construct the adaptor from the outer range of nested ranges.
template<detray::ranges::range deduced_range_t>
constexpr auto operator() (deduced_range_t &&ranges)
 Call operator for range composition.
join & operator= (const join &other)
 Copy assignment operator.
Public Member Functions inherited from detray::ranges::join_view< range_t >
constexpr join_view ()=default
 Default constructor.
template<detray::ranges::range R>
requires (!std::same_as<R, join_view>)
constexpr join_view (R &&ranges)
 Construct from a range of ranges.
constexpr auto begin () const -> iterator_t
constexpr auto data () -> value_t *
constexpr auto data () const -> const value_t *
constexpr auto end () const -> iterator_t
constexpr auto size () const noexcept -> std::size_t
Public Member Functions inherited from detray::ranges::view_interface< join_view< range_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.

Additional Inherited Members

Public Attributes inherited from detray::ranges::join_view< range_t >
outer_iterator_t m_begin {}
 Start and end position of the subranges.
outer_iterator_t m_end {}
 End iterator of the outer range.

Detailed Description

template<detray::ranges::range range_t>
struct detray::ranges::views::join< range_t >

interface type to construct a join_view with CTAD

Constructor & Destructor Documentation

◆ join()

template<detray::ranges::range range_t>
template<detray::ranges::range deduced_range_t>
requires (!std::same_as<deduced_range_t, join>)
detray::ranges::views::join< range_t >::join ( deduced_range_t && ranges)
explicitconstexpr

Construct the adaptor from the outer range of nested ranges.

Parameters
rangesrange whose nested ranges will be joined

Member Function Documentation

◆ operator()()

template<detray::ranges::range range_t>
template<detray::ranges::range deduced_range_t>
auto detray::ranges::views::join< range_t >::operator() ( deduced_range_t && ranges)
constexpr

Call operator for range composition.

Parameters
rangesouter range whose nested ranges will be joined
Returns
view that iterates over the nested ranges in sequence

◆ operator=()

template<detray::ranges::range range_t>
join & detray::ranges::views::join< range_t >::operator= ( const join< range_t > & other)

Copy assignment operator.

Parameters
otheradaptor to copy
Returns
reference to this adaptor