2019-05-22 07:17:31 +08:00
|
|
|
#define SOL_ALL_SAFETIES_ON 1
|
2018-09-28 13:27:38 +08:00
|
|
|
#include <sol/sol.hpp>
|
2018-03-16 05:16:28 +08:00
|
|
|
|
2021-03-06 14:03:23 +08:00
|
|
|
int main() {
|
2018-03-16 05:16:28 +08:00
|
|
|
struct callable {
|
2021-03-06 14:03:23 +08:00
|
|
|
int operator()(int a, bool b) {
|
2018-09-28 13:27:38 +08:00
|
|
|
return a + (b ? 10 : 20);
|
2018-03-16 05:16:28 +08:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
sol::state lua;
|
|
|
|
// Binds struct as userdata
|
|
|
|
// can still be callable, but beware
|
|
|
|
// caveats
|
2021-03-06 14:03:23 +08:00
|
|
|
lua.set("not_func", callable());
|
2018-03-16 05:16:28 +08:00
|
|
|
// Binds struct as function
|
2021-03-06 14:03:23 +08:00
|
|
|
lua.set("func", sol::as_function(callable()));
|
2018-03-16 05:16:28 +08:00
|
|
|
// equivalent: lua.set_function( "func", callable() );
|
|
|
|
// equivalent: lua["func"] = callable();
|
|
|
|
}
|