diff --git a/src/utils/Messenger.hpp b/src/utils/Messenger.hpp index 6bb5d4cb024c03b1f76a1fe99706e2567c0ff121..0c56c2631b5c9cd46b1d72ffcc82bbf34363df50 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,