C++:
Trabalhando com TOML
Como Fazer:
Para trabalhar com TOML em C++, você precisará de uma biblioteca como toml++
. Aqui está um guia rápido:
#include <toml++/toml.h>
#include <iostream>
#include <fstream>
int main() {
// Analisar TOML de um arquivo
std::ifstream ifs("config.toml");
auto config = toml::parse(ifs);
// Acessar um valor
std::string title = config["title"].value_or("Sem Título");
std::cout << "Título: " << title << '\n';
// Modificar e salvar TOML
config["title"] = "Novo Título";
std::ofstream ofs("config.toml");
ofs << config;
}
Exemplo de config.toml
:
title = "Exemplo"
Saída de exemplo:
Título: Exemplo
Aprofundamento
TOML foi criado por Tom Preston-Werner em 2013 como uma alternativa ao YAML e JSON. Ele é projetado para ser simples e explícito, principalmente para arquivos de configuração. Diferente do JSON, o TOML foca em ser inequívoco, o que significa que é determinístico em como o documento é analisado.
Alternativas ao TOML incluem o YAML, que é mais permissivo no que é permitido, embora às vezes ao custo da previsibilidade. O JSON, outra alternativa, é bastante estrito em estrutura, mas não tão amigável para configurações humanas devido à falta de comentários e sua sintaxe pesada de chaves.
Na implementação, toml++
é uma biblioteca apenas de cabeçalhos C++17 que está em conformidade com a última especificação TOML. Ela fornece uma interface semelhante a DOM para navegar e manipular dados TOML, tornando-a direta para integrar em projetos. A biblioteca cuida da análise, validação e geração de saída, permitindo-lhe obter e definir dados TOML usando tipos C++.
Veja Também
- O repositório GitHub do TOML: https://github.com/toml-lang/toml
toml++
, uma biblioteca C++ para TOML: https://github.com/marzer/tomlplusplus- A documentação oficial do TOML com explicações detalhadas do formato: https://toml.io/en/