gpt4 book ai didi

c++ - Luabridge 中出现 "addProperty"错误

转载 作者:行者123 更新时间:2023-11-28 06:09:17 28 4
gpt4 key购买 nike

我有一些非常简单的源代码来公开一个简单的 Foo 类。

主要.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 中的错误

关于c++ - Luabridge 中出现 "addProperty"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31609968/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com