From a397a216289fb0a39939a19617b72b7048057c8e Mon Sep 17 00:00:00 2001 From: lisyarus Date: Wed, 1 Dec 2021 21:20:21 +0300 Subject: [PATCH] Add array::assign --- libs/util/include/psemek/util/array.hpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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() {