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++.
Смотрите также
- GitHub репозиторий TOML: https://github.com/toml-lang/toml
toml++
, библиотека C++ для TOML: https://github.com/marzer/tomlplusplus- Официальная документация TOML с подробными объяснениями формата: https://toml.io/en/