Как сериализовать тип boost::labeled_graph

У меня есть повышение: тип объекта 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 ответ

Решение

Я не видел раньше, но 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()
}
Другие вопросы по тегам