void scatterv(const communicator& comm, const T* in_values, const std::vector<int>& sizes, const std::vector<int>& displs, T* out_values, int out_size, int root) { using detail::c_data; scatterv_impl(comm, in_values, out_values, out_size, c_data(sizes), c_data(displs), root, is_mpi_datatype<T>()); }
void scatterv(const communicator& comm, const T* in_values, const std::vector<int>& sizes, T* out_values, int root) { using detail::c_data; detail::scatterv_impl(comm, in_values, out_values, sizes[comm.rank()], c_data(sizes), (int const*)0, root, is_mpi_datatype<T>()); }
void scatterv(const communicator& comm, const std::vector<T>& in_values, const std::vector<int>& sizes, const std::vector<int>& displs, T* out_values, int out_size, int root) { using detail::c_data; ::boost::mpi::scatterv(comm, c_data(in_values), sizes, displs, out_values, out_size, root); }