我在某个地方读到boost的序列化库必须被编译(我忘了在哪里读的,否则我会发布链接)。
因此,我从source forge下载了最新版本,并将其提取到我项目中的一个路径中。现在呢?
编辑:尽管如此,我试图使用它,但没有编译它,但我得到了这个错误:
boost/archive/basic_xml_oarchive.hpp:92:9: error:
no matching function for call to 'assertion_failed'
BOOST_MPL_ASSERT((serialization::is_wrapper< T >));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
所以我认为原因是,它没有被编译。对吗?
要构建Boost,请按照此处的说明进行操作。
根据您的评论,您只想构建Boost的一部分(序列化)。如果您遵循上面的链接,会有一个包含以下建议的部分(措辞可能会有所不同,我是从Windows说明中复制的):
有关调用b2时可以传递的其他选项的说明,请键入:
键入b2--show-libraries
会产生以下结果:
The following libraries require building:
- atomic
- chrono
- context
- coroutine
- date_time
- exception
- filesystem
- graph
- graph_parallel
- iostreams
- locale
- log
- math
- mpi
- program_options
- python
- random
- regex
- serialization
- signals
- system
- test
- thread
- timer
- wave
因此,要构建序列化,可以将选项--with-serialization
传递给b2
。例如,要使用VS2013构建所有库类型(静态/动态库、静态/动态运行时、调试/发布、单线程/多线程),可以键入以下内容:
注意,如果您计划在未来的项目中使用Boost,那么只构建整个程序可能会更简单(即省略--with-serialization
选项),以便所有库都可以随时使用。
我正在读取xml文件并将其存储到boost::property_tree::ptree pt(object)中。 我试图序列化这个ptree对象使用方法定义在ptree_serialization.hpp 当我使用上述代码时,我得到的错误是:; 如果我做错了什么,你能告诉我吗。请告诉我是否可以序列化xml解析的属性ptree对象。
问题内容: 我是C ++的新手。使用序列化和反序列化类型数据的最简单方法是什么。我发现了一些使用示例,但它们对我来说是晦涩的。 问题答案: 请注意,将键解释为路径,例如,将对“ ab” =“ z”放置将创建{“ a”:{“ b”:“ z”}} JSON,而不是{“ ab”:“ z”} 。否则,使用是微不足道的。这是一个小例子。
我正在尝试使用boost::property_tree反序列化JSON数据。我已经设置了一个boost fusion序列来识别结构成员元素的类型,并使用一个函数来反序列化一个适当的JSON树。它过去对于包含普通数据类型的结构工作得很好。当我尝试对包含结构的结构应用相同的操作时,逻辑会失败并导致编译器错误。有人能看出我错在哪里吗? 错误消息:1
我面临一个生成器类继承的序列化问题。如下所示: 基类: 我看到以下例外: 有人知道如何避免这个问题吗?
推进序列化 树类 作家 读者 我已经写入并验证了对文件的成功序列化,但未能从可用对象中反序列化。 无论我是用文本还是二进制编写,我都可以验证序列化的输出是否正确,但由于某些原因,序列化的输出不会反序列化,并且在加载时留下一个空对象。