10#include "vecmem/utils/details/narrow_size.hpp"
13#include "vecmem/containers/data/jagged_vector_data.hpp"
14#include "vecmem/edm/details/schema_traits.hpp"
15#include "vecmem/edm/details/view_traits.hpp"
16#include "vecmem/edm/schema.hpp"
17#include "vecmem/memory/memory_resource.hpp"
18#include "vecmem/utils/tuple.hpp"
24namespace vecmem::edm::details {
29template <
typename TYPE>
31 using type = std::monostate;
34template <
typename TYPE>
44template <
typename TYPE>
46 static typename data_type<TYPE>::type make(std::size_t, memory_resource&) {
51template <
typename TYPE>
54 std::size_t size, memory_resource&
mr) {
56 return {vecmem::details::narrow_size<typename data_t::size_type>(size),
67 const std::tuple<
typename data_type<VARTYPES>::type...>&
data,
68 std::index_sequence<INDEX, Is...>) {
76 if constexpr (
sizeof...(Is) > 0) {
An allocator class that wraps a memory resource.
Definition allocator.hpp:37
A data wrapper for jagged vectors.
Definition jagged_vector_data.hpp:30
Technical base type for data<schema<VARTYPES...>>
Definition data.hpp:25
Technical base type for view<schema<VARTYPES...>>
Definition view.hpp:29
Definition data_traits.hpp:45
Definition data_traits.hpp:30
Definition view_traits.hpp:33
Definition schema_traits.hpp:108
Default tuple type.
Definition tuple.hpp:24