// Transmit the actual data
BOOST_MPI_CHECK_RESULT(MPI_Alltoallv,
- (&outgoing[0], &send_sizes[0],
- &send_disps[0], MPI_PACKED,
- &incoming[0], &recv_sizes[0],
- &recv_disps[0], MPI_PACKED,
+ (detail::c_data(outgoing), detail::c_data(send_sizes),
+ detail::c_data(send_disps), MPI_PACKED,
+ detail::c_data(incoming), detail::c_data(recv_sizes),
+ detail::c_data(recv_disps), MPI_PACKED,
comm));
// Deserialize data from the iarchive
{
BOOST_ASSERT((int)in_values.size() == comm.size());
out_values.resize(comm.size());
- ::boost::mpi::all_to_all(comm, &in_values[0], &out_values[0]);
+ ::boost::mpi::all_to_all(comm, detail::c_data(in_values), detail::c_data(out_values));
}
template<typename T>
{
BOOST_ASSERT((int)in_values.size() == comm.size() * n);
out_values.resize(comm.size() * n);
- ::boost::mpi::all_to_all(comm, &in_values[0], n, &out_values[0]);
+ ::boost::mpi::all_to_all(comm, detail::c_data(in_values), n, detail::c_data(out_values));
}
} } // end namespace boost::mpi