11#include "vecmem/containers/data/vector_view.hpp"
12#include "vecmem/containers/device_vector.hpp"
13#include "vecmem/utils/types.hpp"
33template <
typename TYPE>
43 typedef std::add_pointer_t<std::add_const_t<data_type>>
data_pointer;
72 VECMEM_HOST_AND_DEVICE
76 VECMEM_HOST_AND_DEVICE
79 VECMEM_HOST_AND_DEVICE
91 VECMEM_HOST_AND_DEVICE
94 VECMEM_HOST_AND_DEVICE
98 std::enable_if_t<details::is_same_nc<TYPE, OTHERTYPE>::value,
103 VECMEM_HOST_AND_DEVICE
106 template <
typename T>
111 VECMEM_HOST_AND_DEVICE
119 VECMEM_HOST_AND_DEVICE
122 VECMEM_HOST_AND_DEVICE
125 VECMEM_HOST_AND_DEVICE
134 VECMEM_HOST_AND_DEVICE
137 VECMEM_HOST_AND_DEVICE
141 VECMEM_HOST_AND_DEVICE
144 VECMEM_HOST_AND_DEVICE
148 VECMEM_HOST_AND_DEVICE
151 VECMEM_HOST_AND_DEVICE
155 VECMEM_HOST_AND_DEVICE
158 VECMEM_HOST_AND_DEVICE
167 VECMEM_HOST_AND_DEVICE
170 VECMEM_HOST_AND_DEVICE
192struct iterator_traits<
vecmem::details::jagged_device_vector_iterator<T>> {
197 T>::difference_type difference_type;
203 typedef std::random_access_iterator_tag iterator_category;
209#include "vecmem/containers/impl/jagged_device_vector_iterator.ipp"
Class holding data about a 1 dimensional vector/array.
Definition vector_view.hpp:38
Helper class for returning "pointer-like" objects from the iterator.
Definition jagged_device_vector_iterator.hpp:63
VECMEM_HOST_AND_DEVICE value_type * operator->()
Return a pointer to a device vector (non-const)
Definition jagged_device_vector_iterator.ipp:20
Custom iterator for vecmem::jagged_device_vector.
Definition jagged_device_vector_iterator.hpp:34
std::add_pointer_t< std::add_const_t< data_type > > data_pointer
Pointer to the data object.
Definition jagged_device_vector_iterator.hpp:43
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator operator-(difference_type n) const
Increment the underlying iterator by a specific value.
Definition jagged_device_vector_iterator.ipp:156
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator & operator=(const jagged_device_vector_iterator &rhs)
Copy assignment operator.
Definition jagged_device_vector_iterator.ipp:69
VECMEM_HOST_AND_DEVICE bool operator!=(const jagged_device_vector_iterator &other) const
Check for the inequality of two iterators.
Definition jagged_device_vector_iterator.ipp:177
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator operator+(difference_type n) const
Decrement the underlying iterator by a specific value.
Definition jagged_device_vector_iterator.ipp:141
VECMEM_HOST_AND_DEVICE reference operator[](difference_type n) const
Return the value at a specific offset.
Definition jagged_device_vector_iterator.ipp:99
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator()
Default constructor.
Definition jagged_device_vector_iterator.ipp:35
data::vector_view< TYPE > data_type
Type of the data object that we have an array of.
Definition jagged_device_vector_iterator.hpp:41
value_type reference
"Reference" type to the underlying (virtual) value
Definition jagged_device_vector_iterator.hpp:55
std::ptrdiff_t difference_type
(Pointer) Difference type
Definition jagged_device_vector_iterator.hpp:53
device_vector< TYPE > value_type
Value type being (virtually) iterated on.
Definition jagged_device_vector_iterator.hpp:51
VECMEM_HOST_AND_DEVICE reference operator*() const
De-reference the iterator.
Definition jagged_device_vector_iterator.ipp:85
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator & operator+=(difference_type n)
Decrement the underlying iterator by a specific value.
Definition jagged_device_vector_iterator.ipp:148
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator & operator--()
Increment the underlying iterator (with '–' as a prefix)
Definition jagged_device_vector_iterator.ipp:124
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator & operator-=(difference_type n)
Increment the underlying iterator by a specific value.
Definition jagged_device_vector_iterator.ipp:163
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator & operator++()
Decrement the underlying iterator (with '++' as a prefix)
Definition jagged_device_vector_iterator.ipp:107
VECMEM_HOST_AND_DEVICE bool operator==(const jagged_device_vector_iterator &other) const
Check for the equality of two iterators.
Definition jagged_device_vector_iterator.ipp:170
VECMEM_HOST_AND_DEVICE pointer operator->() const
Use the iterator as a pointer.
Definition jagged_device_vector_iterator.ipp:93
Main namespace for the vecmem classes/functions.
Definition atomic_ref.hpp:16
std::vector< T, vecmem::polymorphic_allocator< T > > vector
Alias type for vectors with our polymorphic allocator.
Definition vector.hpp:35