Extended OOP functionality for interaction between Lua and C++
lua_State *luaVm; // original lua vm pointer
LuaVmExtended lua{LuaVmExtended}; // create lua extended wrapper
std::vector<LuaArgument> args =
lua.getArguments(); // get all passed arguments
std::vector<LuaArguments> returnArgs{
{-1},
{"Error"},
}; // create argument vector
int amount =
lua.pushArguments(returnArgs.cbegin(),
returnArgs.cend()); // accepts any iterators
// amount contains number of pushed arguments
std::vector<LuaArgument> returnArgs = lua.call(
"functionName", // Function name
{{"arg1"}, {"arg2"}}, // Pass args
3 // Return args amount
);
Tests require docker-compose
./compose-test.sh