2012-01-15 5 views
1

부울을 얻었습니다 : 직렬화에 필요한 함수가없는 labeled_graph 객체 유형.부울을 serialize하는 방법 boost :: 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’ 

labels_graphs를 파일로 serialize하는 방법은 무엇입니까?

+0

출처. 그럼 당신은 부스트의 최신 버전을 시도 할 수 있습니다. 그러한 기능을 가질 수 있습니다. 그렇지 않다면 직접 만들어야합니다. 더 빠르고 더러운 방법은 레이블이 지정된 그래프를 두 부분으로 분리하는 것입니다. 일반적인 부스트 그래프와 레이블이 붙은 그래프에 대한 특별한 정보의 컨테이너입니다. 그런 다음 레이블이 지정된 그래프에서이 두 데이터 구조를 만들고 표준 방식으로 직렬화 할 수 있습니다. labeled_graph와 adjacency_list의 차이점을 알지 못합니다. 따라서 더 간단하고 빠른 방법이있을 수 있습니다. – Eugen

답변

3

이전에 보지 못했지만 선택한 그래프 주위에 labeled_graph looks like a thin wrapper이 있습니다.이 경우에는 그 오류 모양으로 adjacency_list을 선택했습니다. 이 <graph/adj_list_serialize.hpp>을 통해 인접리스트를 직렬화 부스트 지원, 그래서 당신은 아주 현명이로 free function serializing을 사용할 수있는 것 같습니다, 무엇인가 : 당신은 labeled_graph 정말 향상에 이러한 기능이 없습니다 여부를 확인할 수 처음에는

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