12template <
typename... VARTYPES, details::proxy_domain PDOMAIN,
13 details::proxy_access PACCESS, details::proxy_type PTYPE>
14template <details::proxy_type OPTYPE,
15 std::enable_if_t<OPTYPE == details::proxy_type::standalone, bool>>
21 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
22template <
typename PARENT>
25 typename PARENT::size_type index)
27 PTYPE>::make(index, parent)} {
29 static_assert(
PACCESS == details::proxy_access::non_constant,
30 "This constructor is meant for non-const proxies.");
34 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
35template <
typename PARENT>
38 typename PARENT::size_type index)
40 PTYPE>::make(index, parent)} {
42 static_assert(
PACCESS == details::proxy_access::constant,
43 "This constructor is meant for constant proxies.");
47 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
53 : m_data(
other.variables()) {}
56 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
60 proxy_type>::type...
data)
64 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
70 details::proxy_tuple_copy(m_data,
other.m_data);
76 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
83 m_data =
other.variables();
88 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
89template <std::
size_t INDEX>
99 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
100template <std::
size_t INDEX>
101VECMEM_HOST_AND_DEVICE
110 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
111VECMEM_HOST_AND_DEVICE
auto
119 details::proxy_access
PACCESS, details::proxy_type
PTYPE>
120VECMEM_HOST_AND_DEVICE
auto
An allocator class that wraps a memory resource.
Definition allocator.hpp:37
Technical base type for data<schema<VARTYPES...>>
Definition data.hpp:25
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
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