И снова у меня вопрос по C API луёвому.
Как мне правильно организовать вызов функции переданной в другую? То есть, предположим, что есть функция register у которой вторым аргументом передаётся другая функция (луёвая, не сишная, тут lua_tocfunction не прокатит) и эта переданная функция будет через какое-то время вызвана, но уже из другого места, то есть не из того же контекста. Как мне получить что-то типа ссылки на эту функцию, чтобы потом отправить её в стек и как обычно вызвать через lua_pcall/lua_call? Цель, если это важно, Lua 5.3.5
if (lua_isfunction(L, -1)) {
lua_pushnumber(L, 100);
lua_pushnumber(L, 500);
// вызываем с двумя аргументами и одним ретурном
lua_call(L, 2, 1);
std::cout << lua_tonumber(L, -1) << std::endl;
}
При передаче функции типа
function(a, b) return a + b end оно выведет 600.