Skip to content

Commit 0faa4eb

Browse files
committed
Make jagged_vector_buffer usable with a vecmem::vector for its size.
1 parent edcefb1 commit 0faa4eb

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

core/include/vecmem/containers/data/jagged_vector_buffer.hpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,11 @@ class jagged_vector_buffer : public jagged_vector_view<TYPE> {
8686
/// @param type The type (resizable or not) of the buffer
8787
///
8888
template <typename SIZE_TYPE = std::size_t,
89+
typename SIZE_ALLOC = std::allocator<SIZE_TYPE>,
8990
std::enable_if_t<std::is_integral<SIZE_TYPE>::value &&
9091
std::is_unsigned<SIZE_TYPE>::value,
9192
bool> = true>
92-
jagged_vector_buffer(const std::vector<SIZE_TYPE>& capacities,
93+
jagged_vector_buffer(const std::vector<SIZE_TYPE, SIZE_ALLOC>& capacities,
9394
memory_resource& resource,
9495
memory_resource* host_access_resource = nullptr,
9596
buffer_type type = buffer_type::fixed_size);

core/include/vecmem/containers/impl/jagged_vector_buffer.ipp

+4-3
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,14 @@ jagged_vector_buffer<TYPE>::jagged_vector_buffer(
6969
type) {}
7070

7171
template <typename TYPE>
72-
template <typename SIZE_TYPE,
72+
template <typename SIZE_TYPE, typename SIZE_ALLOC,
7373
std::enable_if_t<std::is_integral<SIZE_TYPE>::value &&
7474
std::is_unsigned<SIZE_TYPE>::value,
7575
bool> >
7676
jagged_vector_buffer<TYPE>::jagged_vector_buffer(
77-
const std::vector<SIZE_TYPE>& capacities, memory_resource& resource,
78-
memory_resource* host_access_resource, buffer_type type)
77+
const std::vector<SIZE_TYPE, SIZE_ALLOC>& capacities,
78+
memory_resource& resource, memory_resource* host_access_resource,
79+
buffer_type type)
7980
: base_type(capacities.size(), nullptr),
8081
m_outer_memory(::allocate_jagged_buffer_outer_memory<TYPE>(
8182
(host_access_resource == nullptr ? 0 : capacities.size()), resource)),

tests/core/test_core_jagged_vector_view.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* VecMem project, part of the ACTS project (R&D line)
33
*
4-
* (c) 2021-2023 CERN for the benefit of the ACTS project
4+
* (c) 2021-2025 CERN for the benefit of the ACTS project
55
*
66
* Mozilla Public License Version 2.0
77
*/
@@ -217,7 +217,7 @@ TEST_F(core_jagged_vector_view_test, sizeless) {
217217

218218
// Create a resizable buffer for a jagged vector.
219219
vecmem::data::jagged_vector_buffer<int> output_data(
220-
std::vector<std::size_t>(3, 0), m_mem, nullptr,
220+
vecmem::vector<std::size_t>(3, 0, &m_mem), m_mem, nullptr,
221221
vecmem::data::buffer_type::resizable);
222222
copy.setup(output_data)->wait();
223223

0 commit comments

Comments
 (0)