luabind - 找不到匹配的超载,候选人

时间:2013-07-23 16:21:50

标签: c++ luabind

所以这个问题困扰了我很多天。 我没有留下建议的解决方案,但没有工作。 为了简化问题,在luabind中我尝试导出一个具有从另一个类返回对象的函数的类,如下例所示:

class A
{
public:
    int x;
};
class B
{
    A m_a;
public:
    A* getA(){return &m_a;} // I am curious about this function
}*g_b=new B();

和导出的模块:

void ExportToLua(lua_State* L)
{
    module(L)[
        class_<A>("A")
            .def(constructor<>())
            .def_readwrite("x",&A::x)
            ,
        class_<B>("B")
            .def(constructor<>())
            .def("getA",(A*(B::*)())&B::getA)
    ];
    luabind::globals(L)["g_B"]=boost::ref(g_b);
}

简单明了,现在当我按如下方式调用lua脚本时:

XA = G_B:木屐()

打印(的ToString(xa.x))

我收到以下错误:

找不到匹配的超载,候选人: A * getA(B&amp;)

我试图修改typeid.hpp,如下所示: Calling C++ member function from Luabind causes "No matching overload found" 但没解决我的问题。

0 个答案:

没有答案