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.
> On Sat, Oct 6, 2018 at 4:00 PM Peter Dimov via Boost
> <[hidden email]> wrote:
> > I'm looking at boost/pending/property_serialize.hpp, with the intent of
> > 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?
> Since it's in "pending" I'd say there's no expectation of back
> compatibility, and hence anything goes.
This particular header is in pending/, but it's used when serializing a
boost::adjacency_list, which is not.