11#include "vecmem/utils/details/narrow_size.hpp"
18template <
typename TYPE>
20 memory_resource* resource) {
23 const std::size_t size =
vec.size();
29 (resource !=
nullptr ? *resource : *(
vec.get_allocator().resource())));
33 typedef typename value_type::size_type size_type;
36 for (std::size_t
i = 0;
i < size; ++
i) {
38 value_type(
static_cast<size_type
>(
vec[
i].size()),
vec[
i].data());
45template <
typename TYPE,
typename ALLOC1,
typename ALLOC2>
47 std::vector<std::vector<TYPE, ALLOC1>,
ALLOC2>&
vec,
48 memory_resource* resource) {
51 assert(resource !=
nullptr);
54 const std::size_t size =
vec.size();
64 typedef typename value_type::size_type size_type;
67 for (std::size_t
i = 0;
i < size; ++
i) {
69 value_type(
static_cast<size_type
>(
vec[
i].size()),
vec[
i].data());
76template <
typename TYPE>
78 memory_resource* resource) {
81 const std::size_t size =
vec.size();
87 (resource !=
nullptr ? *resource : *(
vec.get_allocator().resource())));
92 typedef typename value_type::size_type size_type;
95 for (std::size_t
i = 0;
i < size; ++
i) {
97 value_type(
static_cast<size_type
>(
vec[
i].size()),
vec[
i].data());
104template <
typename TYPE,
typename ALLOC1,
typename ALLOC2>
106 const std::vector<std::vector<TYPE, ALLOC1>,
ALLOC2>&
vec,
107 memory_resource* resource) {
110 assert(resource !=
nullptr);
113 const std::size_t size =
vec.size();
124 typedef typename value_type::size_type size_type;
127 for (std::size_t
i = 0;
i < size; ++
i) {
129 value_type(
static_cast<size_type
>(
vec[
i].size()),
vec[
i].data());
An allocator class that wraps a memory resource.
Definition allocator.hpp:37
A data wrapper for jagged vectors.
Definition jagged_vector_data.hpp:30
typename base_type::size_type size_type
Use the base class's size_type.
Definition jagged_vector_data.hpp:36
typename base_type::value_type value_type
Use the base class's value_type.
Definition jagged_vector_data.hpp:38
VECMEM_HOST constexpr SIZE_TYPE narrow_size(INPUT_TYPE size)
Narrow a host-side element count to a device-side size type.
Definition narrow_size.hpp:47
Main namespace for the vecmem classes/functions.
Definition atomic_ref.hpp:16
VECMEM_HOST data::vector_view< T > get_data(array< T, N > &a)
Helper function creating a vecmem::data::vector_view object.
Definition array.ipp:217