11#include "vecmem/containers/data/vector_view.hpp"
12#include "vecmem/containers/device_vector.hpp"
13#include "vecmem/utils/types.hpp"
33template <
typename TYPE>
37 template <
typename OTHERTYPE>
47 typedef std::add_pointer_t<std::add_const_t<data_type>>
data_pointer;
76 VECMEM_HOST_AND_DEVICE
80 VECMEM_HOST_AND_DEVICE
83 VECMEM_HOST_AND_DEVICE
95 VECMEM_HOST_AND_DEVICE
98 VECMEM_HOST_AND_DEVICE
102 std::enable_if_t<details::is_same_nc<TYPE, OTHERTYPE>::value,
107 VECMEM_HOST_AND_DEVICE
111 std::enable_if_t<details::is_same_nc<TYPE, OTHERTYPE>::value,
117 VECMEM_HOST_AND_DEVICE
125 VECMEM_HOST_AND_DEVICE
128 VECMEM_HOST_AND_DEVICE
131 VECMEM_HOST_AND_DEVICE
140 VECMEM_HOST_AND_DEVICE
143 VECMEM_HOST_AND_DEVICE
147 VECMEM_HOST_AND_DEVICE
150 VECMEM_HOST_AND_DEVICE
154 VECMEM_HOST_AND_DEVICE
157 VECMEM_HOST_AND_DEVICE
161 VECMEM_HOST_AND_DEVICE
164 VECMEM_HOST_AND_DEVICE
173 VECMEM_HOST_AND_DEVICE
176 VECMEM_HOST_AND_DEVICE
198struct iterator_traits<
vecmem::details::jagged_device_vector_iterator<T>> {
203 T>::difference_type difference_type;
209 typedef std::random_access_iterator_tag iterator_category;
215#include "vecmem/containers/impl/jagged_device_vector_iterator.ipp"
An allocator class that wraps a memory resource.
Definition allocator.hpp:37
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:67
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:47
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:160
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator & operator=(const jagged_device_vector_iterator &rhs)
Copy assignment operator.
Definition jagged_device_vector_iterator.ipp:73
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:181
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:145
VECMEM_HOST_AND_DEVICE reference operator[](difference_type n) const
Return the value at a specific offset.
Definition jagged_device_vector_iterator.ipp:103
data::vector_view< TYPE > data_type
Type of the data object that we have an array of.
Definition jagged_device_vector_iterator.hpp:45
value_type reference
"Reference" type to the underlying (virtual) value
Definition jagged_device_vector_iterator.hpp:59
std::ptrdiff_t difference_type
(Pointer) Difference type
Definition jagged_device_vector_iterator.hpp:57
device_vector< TYPE > value_type
Value type being (virtually) iterated on.
Definition jagged_device_vector_iterator.hpp:55
VECMEM_HOST_AND_DEVICE reference operator*() const
De-reference the iterator.
Definition jagged_device_vector_iterator.ipp:89
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:152
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator & operator--()
Increment the underlying iterator (with '–' as a prefix)
Definition jagged_device_vector_iterator.ipp:128
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:167
VECMEM_HOST_AND_DEVICE jagged_device_vector_iterator & operator++()
Decrement the underlying iterator (with '++' as a prefix)
Definition jagged_device_vector_iterator.ipp:111
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:174
VECMEM_HOST_AND_DEVICE pointer operator->() const
Use the iterator as a pointer.
Definition jagged_device_vector_iterator.ipp:97
Main namespace for the vecmem classes/functions.
Definition atomic_ref.hpp:16