diff --git a/include/svs/core/data/simple.h b/include/svs/core/data/simple.h index df0a45c3..fc278687 100644 --- a/include/svs/core/data/simple.h +++ b/include/svs/core/data/simple.h @@ -32,6 +32,7 @@ #include "svs/lib/uuid.h" // stdlib +#include #include #include @@ -672,10 +673,10 @@ class SimpleData> { /// Add a new data block to the end of the current collection of blocks. /// void add_block() { - blocks_.emplace_back( + blocks_.emplace_back(std::make_unique( make_dims(blocksize().value(), lib::forward_extent(dimensions())), allocator_.get_allocator() - ); + )); } /// @@ -727,12 +728,12 @@ class SimpleData> { const_value_type get_datum(size_t i) const { auto [block_id, data_id] = resolve(i); - return getindex(blocks_, block_id).slice(data_id); + return getindex(blocks_, block_id)->slice(data_id); } value_type get_datum(size_t i) { auto [block_id, data_id] = resolve(i); - return getindex(blocks_, block_id).slice(data_id); + return getindex(blocks_, block_id)->slice(data_id); } void prefetch(size_t i) const { lib::prefetch(get_datum(i)); } @@ -827,7 +828,7 @@ class SimpleData> { private: // The blocksize in terms of number of vectors. lib::PowerOfTwo blocksize_; - std::vector blocks_; + std::vector> blocks_; size_t dimensions_; size_t size_; Blocked allocator_;