Обратите внимание: я прочитал и применил ответ к: Вызов функции-члена C++ из Luabind приводит к тому, что соответствующая перегрузка не найдена, но это не решило мою проблему.
У меня есть простой класс, который я открываю для LUA через luabind.
Вот код привязки:
void LogManager::luaBindImpl() const
{
using namespace luabind;
lua_State* state(Supervisor::getSingleton().getManager<LuaManager>()->state());
// LogManager
module(state)
[
class_<LogManager>("LogManager")
.enum_("LogType")
[
value("Info", 1)
,value("Warning", 2)
,value("Critical", 3)
,value("Debug", 4)
]
.def("log", &LogManager::log)
.def("registerSource", &LogManager::registerSource)
];
// Add to globals
globals(state)["LogManager"] = this;
}; // eo luaBindImpl
А вот мой LUA:
LogManager.registerSource("lol");
Но я получаю сообщение об ошибке, упомянутое в заголовке (это взято прямо из моего файла журнала):
00:00:00:0520- lua:Exception - No matching overload found, candidates:
void registerSource(LogManager&,std::string const&)
Я рву на себе волосы из-за этого и не вижу, что я делаю неправильно. Кто-нибудь может пролить свет?! :)