Luabridge 中的 "addProperty" 错误
Error with "addProperty" in Luabridge
我有一些非常简单的源代码来公开一个简单的 Foo
class.
main.cpp:
#include <iostream>
#include <lua.hpp>
#include <LuaBridge.h>
class Foo
{
private:
int number = 0;
public:
void setNumber(const int& newNumber) {number = newNumber;}
int getNumber() {return number;}
};
int main()
{
//Expose the API:
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luabridge::getGlobalNamespace(L)
.beginClass<Foo>("Foo")
.addConstructor<void(*)(void)>()
.addProperty("number", &Foo::getNumber, &Foo::setNumber)
.endClass();
}
不幸的是,我收到此错误:
24 error: no matching function for call to ‘luabridge::Namespace::Class<Foo>::addProperty(const char [7], int (Foo::*)(), void (Foo::*)(const int&))’
我不知道问题是什么,但我必须使用addProperty
否则代码看起来不正确
addProperty
的模板:
template <class TG, class TS>
Class <T>& addProperty (char const* name, TG (T::* get) () const, void (T::* set) (TS))
要求 getter 是一个 const
成员函数。
将 getter 更改为:
int getNumber() const { return number; }
消除了 LuaBridge 2.0 中的错误
我有一些非常简单的源代码来公开一个简单的 Foo
class.
main.cpp:
#include <iostream>
#include <lua.hpp>
#include <LuaBridge.h>
class Foo
{
private:
int number = 0;
public:
void setNumber(const int& newNumber) {number = newNumber;}
int getNumber() {return number;}
};
int main()
{
//Expose the API:
lua_State* L = luaL_newstate();
luaL_openlibs(L);
luabridge::getGlobalNamespace(L)
.beginClass<Foo>("Foo")
.addConstructor<void(*)(void)>()
.addProperty("number", &Foo::getNumber, &Foo::setNumber)
.endClass();
}
不幸的是,我收到此错误:
24 error: no matching function for call to ‘luabridge::Namespace::Class<Foo>::addProperty(const char [7], int (Foo::*)(), void (Foo::*)(const int&))’
我不知道问题是什么,但我必须使用addProperty
否则代码看起来不正确
addProperty
的模板:
template <class TG, class TS>
Class <T>& addProperty (char const* name, TG (T::* get) () const, void (T::* set) (TS))
要求 getter 是一个 const
成员函数。
将 getter 更改为:
int getNumber() const { return number; }
消除了 LuaBridge 2.0 中的错误