C2664“无法从const转换为&”当试图将类暴露给Lua时

时间:2014-12-10 11:09:00

标签: c++ lua luabridge

我试图使用LuaBridge向Lua公开两个类。这些类是SpriteTexture,看起来像这样:

class Texture
{
public:
    Texture(const std::string& filename);
    ...
}

class Sprite
{
public:
    Sprite(Texture& texture);
    ...
}

现在,我尝试将这些绑定到Lua:

lua_State* L = ...;
luabridge::getGlobalNamespace(L)
    .beginClass<Texture>("Texture") // No ctor exposed, just the class
    .endClass()
    .beginClass<Sprite>("Sprite")
    .addConstructor<void(*)(Texture&)>() // This causes the error
    .endClass();

但是,这会产生以下编译错误:

C2664: cannot convert argument 1 from 'const Texture' to 'Texture &'

为什么我会收到此错误以及如何解决?

0 个答案:

没有答案