Lua 5.3 -- SOL2.0 用戶指南 【1】
阿新 • • 發佈:2018-12-24
.com 目錄 了解 詳細 rip set 特定 hub 發送
SOL2.2 是一個快速、簡單的C++與LUA的綁定器。如果確定要在你的程序裏面同時運行Lua和C++,SOL 是一個高性能的綁定器,是一個API使用方便的 GO-TO 框架。
簡單看一下特點:這個鏈接到(未鏈接)大部分API。您也可以直接瀏覽API或閱讀教程。要了解有關usertypes的實現的詳細信息,請參閱此處要了解如何處理函數參數,請參閱此註釋。看不到你想要的功能?向問題跟蹤器發送有關特定抽象支持的請求。
下面的代碼和更多示例可以在examples目錄中找到
#define SOL_CHECK_ARGUMENTS 1 #include <sol.hpp> #include "../assert.hpp" int main() { sol::state lua; int x = 0; lua.set_function("beep", [&x]{ ++x; }); lua.script("beep()"); c_assert(x == 1); sol::function beep = lua["beep"]; beep(); c_assert(x == 2); return 0; }
#define SOL_CHECK_ARGUMENTS 1
#include <sol.hpp>
#include "../assert.hpp"
struct vars {
int boop = 0;
int bop () const {
return boop + 1;
}
};
int main() {
sol::state lua;
lua.new_usertype<vars>("vars",
"boop", &vars::boop,
"bop", &vars::bop);
lua.script("beep = vars.new()\n"
"beep.boop = 1\n"
"bopvalue = beep:bop()");
vars& beep = lua["beep"];
int bopvalue = lua["bopvalue"];
c_assert(beep.boop == 1);
c_assert(lua.get<vars>("beep").boop == 1);
c_assert(beep.bop() == 2);
c_assert(bopvalue == 2);
return 0;
}
Lua 5.3 -- SOL2.0 用戶指南 【1】