В настоящее время я экспериментирую с библиотекой Luabind, и я наткнулся на его синтаксис вызова. Он ведет себя и работает, как ожидалось, но почему-то я не могу понять, почему и как это делается.
Код в вопросе заключается в следующем:Luabind-подобный синтаксис (оператор индекса)
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"
];
Чтобы быть более конкретным, я не понимаю, что происходит в квадратных скобках. Почему это работает? Я попытался прочесть исходный код Luabind, к сожалению, безуспешно. Я также попытался восстановить это поведение, что также не увенчалось успехом.
Итак, я пропустил что-то очень очевидное?
Заранее благодарен!
Большое вам спасибо, именно то, что мне нужно! – ChibiX