From 80983966157666edc0f0d6901e91968f5b4fac79 Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Thu, 25 Oct 2018 11:43:29 +0200 Subject: [PATCH] Add generic copy of arrays (value_copy) --- src/utils/ArrayUtils.hpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/utils/ArrayUtils.hpp b/src/utils/ArrayUtils.hpp index 734f0692b..6392eddd6 100644 --- a/src/utils/ArrayUtils.hpp +++ b/src/utils/ArrayUtils.hpp @@ -155,4 +155,23 @@ class Sum ~Sum() = default; }; +template <template <typename ...SourceT> typename SourceArray, + template <typename ...ImageT> typename ImageArray, + typename ...SourceT, typename ...ImageT> +void value_copy(const SourceArray<SourceT...>& source_array, + ImageArray<ImageT...>& image_array) +{ + using SourceDataType = typename SourceArray<SourceT...>::data_type; + using ImageDataType = typename ImageArray<ImageT...>::data_type; + + static_assert(std::is_same_v<std::remove_const_t<SourceDataType>,ImageDataType>); + static_assert(not std::is_const_v<ImageDataType>); + + Assert(source_array.size() == image_array.size()); + + parallel_for(source_array.size(), PASTIS_LAMBDA(const size_t& i) { + image_array[i] = source_array[i]; + }); +} + #endif //ARRAY_UTILS_HPP -- GitLab