C++:
使用TOML

如何操作:

要在C++中使用TOML,你需要一个像toml++这样的库。这里是一个快速开始:

#include <toml++/toml.h>
#include <iostream>
#include <fstream>

int main() {
    // 从文件解析TOML
    std::ifstream ifs("config.toml");
    auto config = toml::parse(ifs);

    // 访问一个值
    std::string title = config["title"].value_or("Untitled");
    std::cout << "标题:" << title << '\n';

    // 修改并保存TOML
    config["title"] = "新标题";
    std::ofstream ofs("config.toml");
    ofs << config;
}

示例config.toml

title = "示例"

示例输出:

标题:示例

深入了解

TOML由Tom Preston-Werner于2013年创建,作为YAML和JSON的一种替代品。它旨在简单和明确,主要用于配置文件。与JSON不同,TOML注重消除歧义,这意味着文档的解析方式是确定的。

TOML的替代品包括YAML,它在允许的内容方面更加宽松,尽管有时这会以预测性为代价。另一种选择是JSON,它在结构上非常严格,但由于缺乏注释和括号繁多的语法,JSON对配置不如人类友好。

在实现上,toml++是一个仅头文件的C++17库,符合最新的TOML规范。它提供了一个DOM类接口,用于导航和操作TOML数据,使其易于集成到项目中。该库负责解析、验证和输出生成,允许你使用C++类型获取和设置TOML数据。

另请参阅

  • TOML GitHub仓库:https://github.com/toml-lang/toml
  • toml++,一个C++的TOML库:https://github.com/marzer/tomlplusplus
  • 官方TOML文档,提供了格式的详细解释:https://toml.io/en/