#define SOL_ALL_SAFETIES_ON 1 #include <sol/sol.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"]; SOL_ASSERT(beep.boop == 1); SOL_ASSERT(lua.get<vars>("beep").boop == 1); SOL_ASSERT(beep.bop() == 2); SOL_ASSERT(bopvalue == 2); return 0; }