12#include "detray/definitions/detail/qualifiers.hpp"
13#include "detray/utils/ranges/ranges.hpp"
15namespace detray::ranges {
25template <
typename value_t>
41 constexpr auto operator*() const -> const value_t& {
return *m_value; }
45 constexpr auto operator*() -> value_t& {
return *m_value; }
49 constexpr auto begin() noexcept -> value_t* {
return m_value; }
53 constexpr auto begin() const noexcept -> const value_t* {
return m_value; }
57 constexpr auto end() noexcept -> value_t* {
return m_value + 1; }
61 constexpr auto end() const noexcept -> const value_t* {
return m_value + 1; }
65 constexpr auto data() noexcept -> value_t* {
return m_value; }
69 constexpr auto data() const noexcept -> const value_t* {
return m_value; }
73 static constexpr auto size() noexcept -> std::
size_t {
return 1; }
77 constexpr auto front() noexcept -> value_t {
return *m_value; }
81 constexpr auto back() noexcept -> value_t {
return *m_value; }
96template <
typename value_t>
101 constexpr pointer() =
default;
105 template <
typename deduced_value_t>
106 DETRAY_HOST_DEVICE
constexpr explicit pointer(deduced_value_t& value)
112template <
typename deduced_value_t>
113DETRAY_HOST_DEVICE_DEDUCTION_GUIDE pointer(deduced_value_t&)
114 -> pointer<deduced_value_t>;
Struct that implements a pointer based view on a single element.
Definition pointer.hpp:27
constexpr pointer_view(value_t &value)
Construct iterator from the single.
Definition pointer.hpp:36
pointer_view()=default
Default constructor.
constexpr auto operator*() const -> const value_t &
Definition pointer.hpp:41
constexpr auto front() noexcept -> value_t
Definition pointer.hpp:77
constexpr auto operator*() -> value_t &
Definition pointer.hpp:45
constexpr auto end() const noexcept -> const value_t *
Definition pointer.hpp:61
constexpr auto data() noexcept -> value_t *
Definition pointer.hpp:65
constexpr auto operator[](const dindex) const -> value_t
Definition pointer.hpp:84
static constexpr auto size() noexcept -> std::size_t
Definition pointer.hpp:73
constexpr auto begin() noexcept -> value_t *
Definition pointer.hpp:49
constexpr auto data() const noexcept -> const value_t *
Definition pointer.hpp:69
value_t * iterator_t
Pointer iterator over the referenced element.
Definition pointer.hpp:30
constexpr auto back() noexcept -> value_t
Definition pointer.hpp:81
constexpr auto begin() const noexcept -> const value_t *
Definition pointer.hpp:53
constexpr auto end() noexcept -> value_t *
Definition pointer.hpp:57
Defines a detray 'view'.
Definition ranges.hpp:190
unsigned int dindex
Default index type.
Definition indexing.hpp:18
detray::ranges::pointer_view< const value_t > base_type
Base implementation referencing one constant value.
Definition pointer.hpp:99
constexpr pointer(deduced_value_t &value)
Construct a view referring to value.
Definition pointer.hpp:106