C++:
Работа с TOML

Как работать:

Чтобы работать с TOML в C++, вам понадобится библиотека, например, 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("Без названия");
    std::cout << "Название: " << title << '\n';

    // Изменение и сохранение TOML
    config["title"] = "Новое Название";
    std::ofstream ofs("config.toml");
    ofs << config;
}

Пример config.toml:

title = "Пример"

Пример вывода:

Название: Пример

Подробнее

TOML был создан Томом Престон-Вернером в 2013 году как альтернатива YAML и JSON. Он разработан, чтобы быть простым и явным, в основном для файлов конфигурации. В отличие от JSON, TOML сосредоточен на недвусмысленности, что значит, документ интерпретируется детерминированно.

Альтернативы TOML включают YAML, который более пермиссивен в том, что разрешено, хотя иногда за счет предсказуемости. JSON, другая альтернатива, достаточно строг в структуре, но не так удобен для человека в конфигурациях из-за отсутствия комментариев и перегруженности скобками.

В реализации toml++ — это библиотека для C++17, которая работает только с заголовочными файлами и соответствует последней спецификации TOML. Она предоставляет интерфейс, подобный DOM, для навигации и манипулирования данными TOML, что делает ее простой в интеграции в проекты. Библиотека заботится о парсинге, валидации и генерации вывода, позволяя вам получать и устанавливать данные TOML, используя типы C++.

Смотрите также