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
|
|
|
|
|
|
|
int main () {
|
|
|
|
struct callable {
|
|
|
|
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
|
|
|
|
lua.set( "not_func", callable() );
|
|
|
|
// Binds struct as function
|
|
|
|
lua.set( "func", sol::as_function( callable() ) );
|
|
|
|
// equivalent: lua.set_function( "func", callable() );
|
|
|
|
// equivalent: lua["func"] = callable();
|
|
|
|
}
|