Boost logo

Boost :

Subject: [boost] [graph_parallel] property_serialize.hpp
From: Peter Dimov (lists_at_[hidden])
Date: 2018-10-06 20:59:43

I'm looking at boost/pending/property_serialize.hpp, with the intent of
moving it from Graph Parallel to Graph as it's included from a Graph header,
and I see this:

namespace boost { namespace mpi {
    struct is_mpi_datatype<boost::no_property> : mpl::true_ { };

} } // end namespace boost::mpi


What this does is, when BOOST_GRAPH_MPI is defined, it sets certain
serialization properties for boost::no_property (is bitwise serializable,
use object level versioning, never track address), but when BOOST_GRAPH_MPI
is not defined, it doesn't.

That is, the serialization format of boost::no_property changes on the basis
of whether BOOST_GRAPH_MPI is defined. (It's the same for boost::property<>,
above in the same file.)

This does not seem correct to me. I would expect these serialization
properties to be applied consistently regardless of whether MPI is used or

But fixing this could conceivably break existing code that serializes and
deserializes non-parallel graphs and relies on a certain format on disk.

So... should we fix this or not?

Boost list run by bdawes at, gregod at, cpdaniel at, john at