Я использую lua 5.2.2 с luabind 0.9.
Я хотел бы иметь возможность добавлять дополнительные методы классов через lua для любых классов, которые я связал в С++, но я не уверен, как это сделать.
Проблема в том, что luabind использует функцию в качестве метаметода __index для любых связанных классов вместо таблицы, поэтому я вообще не вижу способа получить доступ к методам классов.
например, я связываю свои классы следующим образом:
luabind::module(lua)
[
luabind::class_<testClass>("TestClass")
.def(luabind::constructor<>())
.def("TestFunc",&TestFunc)
];
По сути, я хочу добавить lua-функцию в список методов для этого класса и иметь возможность перезаписывать существующие:
local t = tableOfClassMethods
local r = t.TestFunc -- Reference to the c++-function we've bound
t.SomeFunction = function(o) end -- New function for all objects of this class
t.TestFunc = function(o) end -- Should overwrite the c++-function of the same name
Любая помощь будет оценена по достоинству.