Как сериализовать тип 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()
}