Derzeit experimentiere ich mit der Luabind-Library und stolperte über die Aufrufsyntax. Es verhält sich und funktioniert wie erwartet, aber irgendwie kann ich nicht verstehen warum oder wie es funktioniert.
Der Code in Frage folgt:Luabind-artige Syntax (Indexoperator)
Class Animation
{
std::vector frames;
public:
Animation(){}
~Animation(){}
addFrame(const Texture2D *in_image);
};
//Somewhere else
luabind::module(LuaState)
[
luabind::class_("Animation") // < "Animation" how we want to name the Class in the Lua runtime
.def(luabind::constructor<>()) // < Binds the empty constructor
.def("addFrame", &Animation::addFrame) // < Binds the &Animation::addFrame method to lua with the name "addFrame"
];
Um genauer zu sein, ich verstehe nicht, was in den eckigen Klammern passiert. Warum funktioniert das? Ich habe versucht, den Quellcode von Luabind zu lesen, leider ohne Erfolg. Ich habe auch versucht, dieses Verhalten, das ebenfalls nicht erfolgreich war, zu rekonstruieren.
Also, fehlt mir etwas sehr offensichtlich?
Vielen Dank im Voraus!
Vielen Dank, genau das, was ich brauchte! – ChibiX