下面的链接简单介绍了toml的使用
https://github.com/LongTengDao/TOML/wiki
TOML v1.0.0
汤小明的小巧明晰语言。
作者:汤姆·普雷斯顿—维尔纳、Pradyun Gedam 等人。
宗旨
TOML 旨在成为一个语义显著而易于阅读的最低限度的配置文件格式。
TOML 被设计地能够无歧义地转化为哈希表。
TOML 应当能简单地解析成形形色色的语言中的数据结构。
我暂时比较关心数组:
https://github.com/LongTengDao/TOML/blob/%E9%BE%99%E8%85%BE%E9%81%93-%E8%AF%91/toml-v1.0.0.md
数组
数组是内含值的方括号。
空白会被忽略。
子元素由逗号分隔。
数组可以包含与键值对所允许的相同数据类型的值。
可以混合不同类型的值。
integers = [ 1, 2, 3 ]
colors = [ "红", "黄", "绿" ]
nested_array_of_ints = [ [ 1, 2 ], [3, 4, 5] ]
nested_mixed_array = [ [ 1, 2 ], ["a", "b", "c"] ]
string_array = [ "所有的", '字符串', """是相同的""", '''类型''' ]
# 允许混合类型的数组
numbers = [ 0.1, 0.2, 0.5, 1, 2, 5 ]
contributors = [
"Foo Bar <foo@example.com>",
{ name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" }
]
数组可以跨行。
数组的最后一个值后面可以有终逗号(也称为尾逗号)。
值、逗号、结束括号前可以存在任意数量的换行和注释。
数组值和逗号之间的缩进被作为空白对待而被忽略。
integers2 = [
1, 2, 3
]
integers3 = [
1,
2, # 这是可以的
]
我使用的是:https://github.com/skystrife/cpptoml.git
其他的应该差别也不大。本打算使用yaml写配置文件,发现yaml的源文件太多,toml的源文件只有一个头文件,而且语法更简洁,所以果断切换到toml上面了。
在\cpptoml\README.md中有一些简单的测试程序可供参考。
使用中发现的问题:toml文件编写注意事项
1、toml对key中的[] 是敏感的,所以key中不要 出现方括号[].
2、对于Value是数组的,在key的等号右边一定要先来一个左方括号再换行,否则报错崩溃。
支持的类型:std::string, int64_t, double, bool, local_date, local_time, local_datetime, offset_datetime