правильно организовать вызов функции переданной в другую? То есть, предположим, что есть функция 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.
Обсуждают сегодня