gpt4 book ai didi

c++ - Luabind: "No matching overload found, candidates:"

转载 作者:行者123 更新时间:2023-11-30 04:34:08 27 4
gpt4 key购买 nike

请注意,我已阅读并将答案应用于:Calling C++ member function from Luabind causes "No matching overload found" ,但这并没有解决我的问题。

我有一个通过 luabind 暴露给 LUA 的简单类

绑定(bind)代码如下:

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");

但是我得到了标题中提到的错误(这直接来 self 的日志文件):

00:00:00:0520- lua:Exception - No matching overload found, candidates:
void registerSource(LogManager&,std::string const&)

我一直为此焦头烂额,看不出我做错了什么。任何人都可以阐明吗? :)

最佳答案

Lua部分需要用冒号(:)代替点:

LogManager:registerSource("lol");

你确实意识到全局变量 LogManager 与类 LogManager 同名;这样你就不能使用枚举常量,例如LogManager.Info 将返回 nil。

关于c++ - Luabind: "No matching overload found, candidates:",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6152175/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com