diff --git a/libs/util/include/psemek/util/array.hpp b/libs/util/include/psemek/util/array.hpp index ac9e0370..7d989e7f 100644 --- a/libs/util/include/psemek/util/array.hpp +++ b/libs/util/include/psemek/util/array.hpp @@ -122,6 +122,8 @@ namespace psemek::util void resize(dims_type const & dims, T const & value); + void assign(dims_type const & dims, T const & value); + T * data() { return data_.get(); } T const * data() const { return data_.get(); } @@ -394,6 +396,16 @@ namespace psemek::util resize_impl(std::move(data), dims); } + template + void array::assign(dims_type const & dims, T const & value) + { + auto const size = detail::product(dims); + std::unique_ptr data(new T[size]); + std::fill(data.get(), data.get() + size, value); + data_ = std::move(data); + dims_ = dims; + } + template std::unique_ptr array::release() {