我正在使用 boost 图形库。我需要序列化一个 \ngraph 对象并稍后将其读出。但我发现我的\n程序无法与 XML 归档器一起正常工作。它总是抛出异常:
\n\n\n\n\nXML 开始/结束标记\n 不匹配 - 位置。
\n
我没有"position"在序列化代码中定义名为 \n 的标签。我不知道如何解决它。这是问题的演示。
#ifndef TYPES_H\n#define TYPES_H\n\n#include <boost/graph/graph_traits.hpp>\n#include <boost/graph/adjacency_list.hpp>\n#include <boost/graph/adj_list_serialize.hpp>\n#include <boost/graph/filtered_graph.hpp>\n#include <boost/multi_index_container.hpp>\n#include <boost/multi_index/ordered_index.hpp>\n#include <boost/multi_index/identity.hpp>\n#include <boost/multi_index/member.hpp>\n#include <boost/multi_index/composite_key.hpp>\n#include <boost/serialization/map.hpp>\n#include <boost/serialization/deque.hpp>\n#include <boost/serialization/variant.hpp>\n#include <boost/variant.hpp>\n#include <boost/ref.hpp>\n\nusing namespace boost;\nnamespace bmi = boost::multi_index;\n\nclass QTable; //forward declaration\ntypedef QTable Eligibility;\n\n//\xc3\xa8\xc2\xa7\xe2\x80\x9a\xc3\xa6\xc2\xb5\xe2\x80\xb9\xc3\xa7\xc2\xb1\xc2\xbb\xc3\xa5\xc5\xbe\xe2\x80\xb9\nenum Observation{present,absent,idle};\n\n//1\xc3\xaf\xc2\xbc\xe2\x80\xb0\xc3\xa5\xe2\x80\xba\xc2\xbe\xc3\xa6\xc2\xa8\xc2\xa1\xc3\xa5\xc5\xbe\xe2\x80\xb9\xc3\xa7\xc5\xa1\xe2\x80\x9e\xc3\xa5\xc2\xae\xc5\xa1\xc3\xa4\xc2\xb9\xe2\x80\xb0\nenum vertex_BatteryLevel_t {vertex_BatteryLevel};\nenum vertex_ObservationHistory_t {vertex_ObservationHistory};\nenum edge_QFunction_t {edge_QFunction};\nenum edge_Eligibility_t {edge_Eligibility};\n\nnamespace boost {\n BOOST_INSTALL_PROPERTY(vertex,BatteryLevel);\n BOOST_INSTALL_PROPERTY(vertex,ObservationHistory);\n BOOST_INSTALL_PROPERTY(edge,QFunction);\n BOOST_INSTALL_PROPERTY(edge,Eligibility);\n}\n\ntypedef property<vertex_BatteryLevel_t,int,\n property<vertex_ObservationHistory_t,std::deque<Observation>,\n property<vertex_index_t,int>\n > \n> vertex_state;\ntypedef property<edge_QFunction_t,QTable,\n property<edge_Eligibility_t,Eligibility>\n> edge_qfunction;\ntypedef adjacency_list<\n vecS,setS,directedS, //\xc3\xa7\xc2\xbb\xe2\x80\x9c\xc3\xa7\xe2\x80\x9a\xc2\xb9\xc3\xa7\xe2\x80\x9d\xc2\xa8vecS\xc3\xa5\xe2\x80\xba\xc2\xa0\xc3\xa4\xc2\xb8\xc2\xba\xc3\xa6\xe2\x80\x94\xc2\xa0\xc3\xa9\xc5\x93\xe2\x82\xac\xc3\xa5\xc5\xa0\xc2\xa8\xc3\xa6\xe2\x82\xac\xc3\xa6\xe2\x80\x9d\xc2\xb9\xc3\xa5\xcb\x9c\xc3\xa7\xc2\xbb\xe2\x80\x9c\xc3\xa7\xe2\x80\x9a\xc2\xb9\xc3\xa4\xc2\xb8\xc2\xaa\xc3\xa6\xe2\x80\xa2\xc2\xb0\xc3\xaf\xc2\xbc\xc5\x92\xc3\xa7\xe2\x80\x9d\xc2\xa8setS\xc3\xa8\xc2\xa1\xc2\xa8\xc3\xa7\xc2\xa4\xc2\xba\xc3\xa8\xc2\xbe\xc2\xb9\xc3\xa4\xc2\xb8\xc2\xba\xc3\xa4\xc2\xba\xe2\x80\xa0\xc3\xa5\xc2\xbc\xc2\xba\xc3\xa8\xc2\xb0\xc6\x92\xc3\xa6\xcb\x9c\xc2\xaf\xc3\xa7\xc2\xae\xe2\x82\xac\xc3\xa5\xe2\x80\xa2\xc3\xa5\xe2\x80\xba\xc2\xbe\xc3\xaf\xc2\xbc\xcb\x86\xc3\xa4\xc2\xb8\xc2\xa4\xc3\xa4\xc2\xb8\xc2\xaa\xc3\xa7\xc2\xbb\xe2\x80\x9c\xc3\xa7\xe2\x80\x9a\xc2\xb9\xc3\xa4\xc2\xb9\xe2\x80\xb9\xc3\xa9\xe2\x80\x94\xc2\xb4\xc3\xa4\xc2\xb8\xe2\x82\xac\xc3\xa4\xc2\xb8\xc2\xaa\xc3\xa6\xe2\x80\x93\xc2\xb9\xc3\xa5\xe2\x80\x98\xc3\xa7\xc5\xa1\xe2\x80\x9e\xc3\xa8\xc2\xbe\xc2\xb9\xc3\xa5\xc2\xaa\xc3\xa8\xc6\x92\xc2\xbd\xc3\xa6\xc5\x93\xe2\x80\xb0\xc3\xa4\xc2\xb8\xe2\x82\xac\xc3\xa6\xc2\xa1\xc3\xaf\xc2\xbc\xe2\x80\xb0\n vertex_state, //\xc3\xa8\xc5\xa0\xe2\x80\x9a\xc3\xa7\xe2\x80\x9a\xc2\xb9\xc3\xa7\xc5\xa1\xe2\x80\x9e\xc3\xa7\xe2\x80\x9d\xc2\xb5\xc3\xa9\xe2\x80\xa1\xc3\xa5\xe2\x80\x99\xc5\x92\xc3\xa8\xc2\xa7\xe2\x80\x9a\xc3\xa6\xc2\xb5\xe2\x80\xb9\xc3\xa5\xc5\xbd\xe2\x80\xa0\xc3\xa5\xc2\xb2\n …Run Code Online (Sandbox Code Playgroud)