Как сериализовать тип boost :: labeled_graph - PullRequest
1 голос
/ 15 января 2012

У меня есть импульс: тип объекта labeled_graph, который, кажется, не имеет необходимых функций для сериализации.

    error: ‘class boost::labeled_graph<boost::adjacency_list<boost::listS, boost::listS,
 boost::undirectedS, Space, spaceEdge, graphProperties, boost::listS>, std::basic_string<char,
 std::char_traits<char>, std::allocator<char> >, boost::defaultS>’ has no member named
 ‘serialize’

Любой способ сериализации labeleled_graphs в файл?

1 Ответ

3 голосов
/ 15 января 2012

Я раньше не видел, но labeled_graph выглядит как тонкая оболочка вокруг другого графика по вашему выбору, в данном случае вы выбрали adjacency_list по виду этой ошибки.Есть расширенная поддержка для сериализации списков смежности через <graph/adj_list_serialize.hpp>, так что похоже, что вы можете использовать бесплатную функцию сериализации весьма разумно с этим, что-то вроде:

template<class Archive>
inline void serialize(
    Archive & ar, 
    my_grap_typedef & g, 
    const unsigned int /*file_version*/
){
  ar & g.graph()
}
...