sol2/examples/tutorials/quick_n_dirty/self_call.cpp

36 lines
700 B
C++
Raw Normal View History

#define SOL_CHECK_ARGUMENTS 1
#include <sol.hpp>
#include <iostream>
int main() {
std::cout << "=== self_call ===" << std::endl;
sol::state lua;
lua.open_libraries(sol::lib::base, sol::lib::package, sol::lib::table);
// a small script using 'self' syntax
lua.script(R"(
some_table = { some_val = 100 }
function some_table:add_to_some_val(value)
self.some_val = self.some_val + value
end
function print_some_val()
print("some_table.some_val = " .. some_table.some_val)
end
)");
// do some printing
lua["print_some_val"]();
// 100
sol::table self = lua["some_table"];
self["add_to_some_val"](self, 10);
lua["print_some_val"]();
std::cout << std::endl;
return 0;
}