
On 5 Jul 2010, at 19:08, Andy Tompkins wrote:
Hi Didier,
On Thu, 10 Jun 2010 22:53 +0200, "Didier Devaurs"
wrote: Hello,
I'm having troubles trying to pass a uuid with MPI routines. Since a uuid is serialized as a primitive type, I was expecting it could be declared as an MPI datatype using: BOOST_IS_MPI_DATATYPE(boost::uuids::uuid) and sent via MPI routines.
This makes sense to me from reading the docs: http://www.boost.org/doc/libs/1_43_0/doc/html/mpi/tutorial.html#mpi.user_dat...
You have to be very careful when declaring a type as primitive. Declaring a type as a primitive type means that EVERY archive that you want to use the type with has to provide special support for your type. I would strongly discourage you from doing so. BOOST_IS_MPI_DATATYPE(boost::uuids::uuid) can certainly be used, but this implies that either the type is serializable and you provide a serialize function, or you provide special support for the type by manually overloading the get_mpi_datatype function. The recommended course of action is providing a serialize function. Matthias