回答を読んで適用したことに注意してください: Luabind から C++ メンバー関数を呼び出すと、「一致するオーバーロードが見つかりません」が発生しますが、これで問題は解決しませんでした。
luabindを介してLUAに公開する単純なクラスがあります
バインディング コードは次のとおりです。
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&)
私はこれで髪を引き裂いてきましたが、何が間違っているのかわかりません。誰でも光を当てることができますか?! :)