C++:
Praca z TOML

Jak to zrobić:

Aby pracować z TOML w C++, potrzebujesz biblioteki takiej jak toml++. Oto szybki start:

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

int main() {
    // Parsowanie TOML z pliku
    std::ifstream ifs("config.toml");
    auto config = toml::parse(ifs);

    // Dostęp do wartości
    std::string title = config["title"].value_or("Bez tytułu");
    std::cout << "Tytuł: " << title << '\n';

    // Modyfikacja i zapis TOML
    config["title"] = "Nowy Tytuł";
    std::ofstream ofs("config.toml");
    ofs << config;
}

Przykładowy config.toml:

title = "Przykład"

Przykładowe wyjście:

Tytuł: Przykład

Dogłębna analiza

TOML został stworzony przez Toma Preston-Wernera w 2013 roku jako alternatywa dla YAML i JSON. Został zaprojektowany tak, aby być prostym i jednoznacznym, głównie dla plików konfiguracyjnych. W przeciwieństwie do JSON, TOML koncentruje się na byciu niejednoznacznym, co oznacza, że jest deterministyczny w sposobie parsowania dokumentu.

Alternatywami dla TOML są YAML, który jest bardziej liberalny w tym, co jest dozwolone, chociaż czasami kosztem przewidywalności. Inną alternatywą jest JSON, który jest dość ścisły w strukturze, ale nie tak przyjazny dla ludzi w konfiguracjach z powodu braku komentarzy i obfitości nawiasów.

W implementacji, toml++ to biblioteka C++17 tylko z nagłówkami, zgodna z najnowszą specyfikacją TOML. Zapewnia interfejs podobny do DOM, umożliwiający nawigację i manipulację danymi TOML, co ułatwia integrację z projektami. Biblioteka zajmuje się parsowaniem, walidacją i generowaniem wyjścia, pozwalając na pobieranie i ustawianie danych TOML za pomocą typów C++.

Zobacz także