10#include "vecmem/edm/details/proxy_traits.hpp"
11#include "vecmem/edm/schema.hpp"
12#include "vecmem/utils/tuple.hpp"
13#include "vecmem/utils/types.hpp"
19template <
typename T, details::proxy_domain
PDOMAIN,
20 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
33 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
40 static constexpr details::proxy_domain proxy_domain =
PDOMAIN;
42 static constexpr details::proxy_access access_type =
PACCESS;
44 static constexpr details::proxy_type proxy_type =
PTYPE;
47 VARTYPES, proxy_domain, access_type, proxy_type>::type...>;
58 template <
typename PARENT>
60 typename PARENT::size_type index);
68 template <
typename PARENT>
70 typename PARENT::size_type index);
88 VECMEM_HOST_AND_DEVICE
proxy(
98 VECMEM_HOST_AND_DEVICE
proxy(
100 proxy_type>::type...
data);
108 VECMEM_HOST_AND_DEVICE
134 template <std::
size_t INDEX>
135 VECMEM_HOST_AND_DEVICE
140 template <std::
size_t INDEX>
141 VECMEM_HOST_AND_DEVICE
152 VECMEM_HOST_AND_DEVICE
155 VECMEM_HOST_AND_DEVICE
170#include "vecmem/edm/impl/proxy.ipp"
Technical base type for data<schema<VARTYPES...>>
Definition data.hpp:25
proxy(const proxy &)=default
Default copy constructor.
schema< VARTYPES... > schema_type
The schema describing the host's payload.
Definition proxy.hpp:38
proxy(proxy &&)=default
Default move constructor.
Technical base type for proxy<schema<VARTYPES...>,PDOMAIN,PACCESS,PTYPE>
Definition proxy.hpp:21
Main namespace for the vecmem classes/functions.
Definition atomic_ref.hpp:16
VECMEM_HOST_AND_DEVICE constexpr const auto & get(const tuple< Ts... > &t) noexcept
Get a constant element out of a tuple.
Definition tuple.ipp:58
std::vector< T, vecmem::polymorphic_allocator< T > > vector
Alias type for vectors with our polymorphic allocator.
Definition vector.hpp:35
Proxy types for one element of a type pack.
Definition proxy_traits.hpp:301
Technical base class for the proxy_var_type traits.
Definition proxy_traits.hpp:57
Meta type describing the "schema" of an SoA container.
Definition schema.hpp:46