C++:
Lavorare con TOML

Come fare:

Per lavorare con TOML in C++, avrai bisogno di una libreria come toml++. Ecco una guida rapida:

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

int main() {
    // Analizza il TOML da un file
    std::ifstream ifs("config.toml");
    auto config = toml::parse(ifs);

    // Accesso a un valore
    std::string title = config["title"].value_or("Senza titolo");
    std::cout << "Titolo: " << title << '\n';

    // Modifica e salva il TOML
    config["title"] = "Nuovo Titolo";
    std::ofstream ofs("config.toml");
    ofs << config;
}

Esempio di config.toml:

title = "Example"

Esempio di output:

Titolo: Example

Approfondimento

TOML è stato creato da Tom Preston-Werner nel 2013 come alternativa a YAML e JSON. È progettato per essere semplice ed esplicito, principalmente per file di configurazione. A differenza di JSON, TOML si concentra sull’essere non ambiguo, il che significa che è deterministico nel modo in cui il documento viene analizzato.

Tra le alternative a TOML c’è YAML, che è più permissivo in ciò che è consentito, anche se a volte a scapito della prevedibilità. JSON, un’altra alternativa, ha una struttura piuttosto rigorosa ma non è altrettanto amichevole per le configurazioni umane a causa della mancanza di commenti e della sua sintassi piena di parentesi graffe.

Nella sua implementazione, toml++ è una libreria C++17 solo intestazione che è conforme all’ultima specifica TOML. Fornisce un’interfaccia simile a DOM per navigare e manipolare dati TOML, rendendolo semplice da integrare nei progetti. La libreria si occupa dell’analisi, della validazione e della generazione dell’output, permettendoti di ottenere e impostare dati TOML usando tipi C++.

Vedi anche