我想将 a 传递std::map给chaiscript。但是,我不确定如何执行此操作。我的代码目前如下:
#include <map>
#include <string>
#include <chaiscript/chaiscript.hpp>
int main(int argc, char* argv[]) {
chaiscript::ChaiScript chai;
auto data = std::map<std::string, std::string>{
{ "key1", "val1"},
{ "key2", "val2"},
};
chai.add_global(chaiscript::var(&data), "data");
chai.eval(R"(
print(data["key1"]);
)");
}
但是,此代码崩溃并出现异常,即chaiscript不知道如何处理括号[]运算符。我怎样才能解决这个问题?
我可以告诉chaiscript正确的功能是什么,但我更喜欢它,如果地图与chaiscript的内部Map类型兼容!
更新:
我在文档中找到了一点,它解释了chaiscript映射类型支持任意输入。查看代码,这似乎是由Boxed_Value类型完成的。但是,这可能意味着根本不可能直接插入std::map到脚本中。
我现在正在考虑编写自定义类型或转换函数来解决问题。让你知道...