【问题标题】:YAML serialization library for C++?C++ 的 YAML 序列化库?
【发布时间】:2026-01-14 23:45:01
【问题描述】:

YAML 似乎是一种用于配置文件和数据以人类可读形式绑定持久对象的好格式......

是否有处理 YAML 的 C++ 库? Boost::Serialization 是否有 YAML 选项的计划?

编辑:我更喜欢 OO 库。

【问题讨论】:

  • 我希望 Cereal 能够解析\写入 yaml。它不必使用yaml的所有特性,只相当于一个简单的json树。

标签: c++ serialization boost persistence yaml


【解决方案1】:

快速搜索给了我这个:yaml-cpp

【讨论】:

    【解决方案2】:

    尝试BOOST vault serialization library 中的 YAML 组件。

    EDIT 2014:最近的发展,https://groups.google.com/d/msg/boost-devel-archive/mhT7qIh1nsI/uXAuXFAWrxQJ

    EDIT 2019:还没有尝试过,但这似乎是一个严肃的问题:https://github.com/rwols/yaml-archive

    【讨论】:

    • 我最近尝试让它工作,让它编译,1)我必须使库适应更新版本的 Boost.Serialization Archive 框架(主要是更新内部类的名称),2 ) 更新命名空间以使用现在的 Spirit.Classic ...
    • ... 3) 更改 Boost 元组代码,4) 将大量代码移至 .hpp,因为某些实例化不起作用。 5)然而,我无法让它工作,因为 NVP 包装器不适用于数组,最后我让它输出一个看起来正确的序列化,但是我不能反序列化它。经过大量工作,我在使用 Spirit 语法时遇到错误(关于错误使用 rule_t 到一元表达式 !S >> '=' >> !S 的问题。我不能再这样做了。也许从头开始会有所回报XML 存档案例。
    【解决方案3】:

    我找到了这个,如果你使用它,请告诉我它是如何为你做的,如果可能的话,发布一些例子,

    https://code.google.com/p/google-summer-of-code-2008-boost/downloads/list

    更新链接(如 2014 年),它似乎指向与 BOOST 保险库答案相同的文件。

    【讨论】: