Есть ли способ определить, сколько параметров принимает функция Lua непосредственно перед ее вызовом из кода C/C++?
Я посмотрел на lua_Debug
и lua_getinfo
, но они не дают того, что мне нужно.
Может показаться, что я иду против духа Lua, но я действительно хочу пуленепробиваемый интерфейс, который у меня есть между Lua и C++. Когда функция C++ вызывается из кода Lua, интерфейс проверяет, что Lua предоставил правильное количество аргументов и правильный тип каждого аргумента. Если обнаружена проблема с аргументами, выдается lua_error
.
Я бы хотел, чтобы аналогичная ошибка проверялась наоборот. Когда C++ вызывает функцию Lua, он должен, по крайней мере, проверить, что функция Lua не объявляет больше параметров, чем необходимо.