Luabind:“未找到匹配的重载,候选::”

问题描述

| 注意,我已阅读并将答案适用于:从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&)
我一直在为此扯头发,看不到我在做什么错。任何人都可以照亮吗? :)     

解决方法

        在Lua部分,您需要使用冒号(
:
)代替点:
LogManager:registerSource(\"lol\");
您确实意识到全局变量variable5ѭ与类with5ѭ具有相同的名称;这样,您将无法使用枚举常量,例如
LogManager.Info
将返回nil。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...