我正在尝试从类中导出静态字段:
class Foo
{
const static int Var;
};
// luabind module:
.def_readonly("Var", &Foo::Var);
// I've also tried
.def_readonly("Var", Foo::Var);
error: no matching function for call to ‘luabind::class_<Foo>::def_readonly(const char [6], const Foo&)’ note: template<class C, class D> luabind::class_& luabind::class_::def_readwrite(const char*, D C::*)
我错过了什么?
答案 0 :(得分:3)
As clearly stated in the documentation,静态函数(以及其他内容)不能作为成员添加。它们必须用特殊的.scope
构造作为范围。
class_<foo>("foo")
.def(constructor<>())
.scope
[
class_<inner>("nested"),
def("f", &f)
];
我不知道def
的非成员函数版本是否有readonly
版本的变量,但它可能。如果没有,那么你必须将它作为一个返回值的函数公开。