在查看this等帖子并喜欢语法之后,我已经决定使用lua作为我的程序的配置管理,sol2最近已经发布,所以我使用了
所以我的问题是,如何获取我的lua状态中的所有变量并将它们吐出文件?
说,
sol::state lua;
lua["foo"]["bar"] = 2;
lua["foo"]["foobar"] = lua.create_table();
反过来,最终会吐出来
foo = {
bar = 2
foobar = {}
}
这是否可能?如果可行,怎么做?
答案 0 :(得分:0)
我使用this serializer来序列化我的表并将其打印出来,非常简单!
这就是我想出来的
std::string save_table(const std::string& table_name, sol::state& lua)
{
auto table = lua["serpent"];
if (!table.valid()) {
throw std::runtime_error("Serpent not loaded!");
}
if (!lua[table_name].valid()) {
throw std::runtime_error(table_name + " doesn't exist!");
}
std::stringstream out;
out << table_name << " = ";
sol::function block = table["block"];
std::string cont = block(lua[table_name]);
out << cont;
return std::move(out.str());
}