verificar validar una tipos solo restringir numeros numero funcion entero electronico correo comprobar como aceptar c++ c lua arguments argument-passing

una - validar tipos c++



extendiendo Lua: verifica el número de parámetros pasados ​​a una función (1)

Puede usar lua_gettop() para determinar el número de argumentos pasados ​​a una función C Lua:

int lua_gettop (lua_State *L);
Devuelve el índice del elemento superior en la pila. Debido a que los índices comienzan en 1, este resultado es igual al número de elementos en la pila (y entonces 0 significa una pila vacía).

static int idiv(lua_State *L) { if (lua_gettop(L) != 2) { return luaL_error(L, "expecting exactly 2 arguments"); } int n1 = lua_tointeger(L, 1); /* first argument */ int n2 = lua_tointeger(L, 2); /* second argument */ int q = n1 / n2; int r = n1 % n2; lua_pushinteger(L, q); /* first return value */ lua_pushinteger(L, r); /* second return value */ return 2; /* return two values */ }

Quiero crear una nueva función Lua.

Puedo usar la función con parámetros (estoy siguiendo este enlace ) para leer los parámetros de la función.

static int idiv(lua_State *L) { int n1 = lua_tointeger(L, 1); /* first argument */ int n2 = lua_tointeger(L, 2); /* second argument */ int q = n1 / n2; int r = n1 % n2; lua_pushinteger(L, q); /* first return value */ lua_pushinteger(L, r); /* second return value */ return 2; /* return two values */ }

Me gustaría saber si hay una manera de saber la cantidad de parámetros pasados ​​a una función, para poder imprimir un mensaje si el usuario no llama a la función con dos parámetros.

Quiero ejecutar la función cuando el usuario escribe

idiv(3, 4)

e imprime un error cuando

idiv(2) idiv(3,4,5) and so on...