From f8b39f8a79892f6ba1e7f902d8a4c28e206861f2 Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Wed, 17 Oct 2018 15:33:44 +0200 Subject: [PATCH] Change signature of broadcast operations. Value is modified in-place. --- src/utils/Messenger.hpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/utils/Messenger.hpp b/src/utils/Messenger.hpp index 6bb5d4cb0..0c56c2631 100644 --- a/src/utils/Messenger.hpp +++ b/src/utils/Messenger.hpp @@ -258,11 +258,10 @@ class Messenger template <typename DataType> PASTIS_INLINE - DataType broadcast(const DataType& data, int root_rank) const + void broadcast(DataType& data, int root_rank) const { if constexpr(std::is_same<DataType, int>()) { - int int_data = data; - return _broadcast_value(int_data, root_rank); + return _broadcast_value(data, root_rank); } else { static_assert(std::is_same<DataType, int>(), "unexpected type of data"); } @@ -270,7 +269,7 @@ class Messenger template <typename DataType> PASTIS_INLINE - Array<DataType> broadcast(const Array<DataType>& array, int root_rank) const + void broadcast(Array<DataType>& array, int root_rank) const { static_assert(not std::is_const_v<DataType>, "cannot broadcast array of const"); @@ -295,7 +294,6 @@ class Messenger static_assert(std::is_trivial_v<DataType>, "unexpected non trivial type of data"); } - return array; } template <typename SendDataType, @@ -375,9 +373,9 @@ allToAll(const Array<DataType>& array) template <typename DataType> PASTIS_INLINE -Array<DataType> broadcast(const Array<DataType>& array, int root_rank) +void broadcast(Array<DataType>& array, int root_rank) { - return messenger().broadcast(array, root_rank); + messenger().broadcast(array, root_rank); } template <typename SendDataType, -- GitLab