luabind oraz pobieranie informacje o funkcji

0

Witam

Dość dziwnie zatytułowałem ten wątek, ale nie miałem innego pomysłu. Ostatnio na sieci znalazłem bibliotekę do LUA luabind http://www.rasterbar.com/products/luabind.html i zainteresowało mnie tam działanie wrappera.
Piszę ten temat po prostu, aby dowiedzieć się jak to dokładnie działa. Tutaj przykładowo jest plik hello_world.cpp

extern "C"
{
	#include "lua.h"
	#include "lualib.h"
	#include "lauxlib.h"
}

#include <iostream>
#include <luabind/luabind.hpp>

void greet()
{
    std::cout << "hello world!\n";
}

extern "C" int init(lua_State* L)
{
    using namespace luabind;

    open(L);

    module(L)
    [
        def("greet", &greet)
    ];

    return 0;
}

I jestem ciekawy jak funkcja (algorytm) może wyciąg listę argumentów oraz wartość zwracaną przez funkcje. Jeśli ktoś wie, lub domyśla się jak to działa liczę na odpowiedź.

0

W Lua nie da się określić wartości zwracanej przez funkcję z racji, że ten język ma dynamiczne typowanie, bo co wg Ciebie będzie zwracać funkcja:

function foo(x)
  if x == 10 then
    return "No chyba nie"
  else
    return x
  end
end
0

Źle mnie zrozumiałeś. Tutaj w ogóle nie chodzi mi o LUA.
Podałem tę bibliotekę, bo tam jakaś funkcja potrafi pobierać listę argumentów i zwracany typ funkcji w C++. A później wrapper dodaje to wtedy do środowiska LUA.

1 użytkowników online, w tym zalogowanych: 0, gości: 1