c++ - 如何从 Lua 更新 C++ 对象
问题描述
如何在 Lua 中定义一个函数,该函数将更新从 C++ 传递给它的对象(可能是通过指针或引用?)。我正在使用 sol2,并希望在以下 C++ 源代码中更新对象的m_
数据成员:Foo
f
#define SOL_ALL_SAFETIES_ON 1
#include <sol/sol.hpp>
#include <iostream>
struct Foo
{
int m_ = 0;
void bar() { std::cout << "hello\n;"; }
};
int main(int, char*[])
{
sol::state lua;
lua.open_libraries(sol::lib::base);
sol::load_result script1 = lua.load_file("test1.lua");
sol::function fx = lua["f"];
Foo f;
fx(f);
assert(4 == f.x);
return 0;
}
...我的 lua 脚本目前看起来像这样:
function f(x)
x:m_ = 4
end
解决方案
推荐阅读
- javascript - 使用 Nativescript 解决方法的 Puppeteer
- amazon-web-services - 在 AWS API Gateway 中创建自定义域名时用于 ACM 初始化的 API
- mysql-workbench - 为什么我必须将 DB_PORT 更改为 33060 才能运行迁移,然后必须将其更改回 3306?Laravel6
- datatables - DataTable 不显示表格
- sharepoint-2013 - 如何在 SharePoint 中加入两个列表
- spring-boot - 在 Spring Data JPA 中,有什么方法可以获取在 put rest api 中更新的所有列名?
- reactjs - 如何更改一种状态并清除所有其他状态?
- git - 如何编写一个 git 钩子来拉每个推送?
- c++ - 按字母顺序对给定文本进行排序,无需额外的库
- python - 下载自定义文件夹中的视频并使用scrapy命名