我将Lua嵌入到一个C++类中。
tolua++似乎忽略了类中的一些重载运算符。
tolua++发出以下警告:
ignoring
有办法绕过这件事吗?
发布于 2010-12-23 11:31:05
我对tolua++并不熟悉,但它不支持任何一个都是有道理的。tolua++只是礼貌地通知您,这样您就不会认为代码有任何效果。
在Lua和the ~= operator is the negation of ==的上下文中,赋值操作符是没有意义的,因此实现operator==需要处理Lua对象的==和~=。
编辑:使用这个空间回答下面提出的问题,这样我就可以包含代码:
真,这解释了不等式关系,但是赋值呢?
在Lua中,变量不是输入的,它们只是值的名称。赋值运算符将任何类型的新值与该名称关联,它不会修改与名称关联的前一个值(例如,该值存在于内存中的某个地方,未更改,如果不存在对其的进一步引用,则等待垃圾收集)。想想赋值对于全局变量意味着什么:
print(math) --> table: 00516620
math = "foo"
print(math) --> foo这第二行相当于:
_G.math = "foo"换句话说,math=val正在替换_G["math"]上的值,因此它是否意味着重写数学对象的operator=?没什么。
最接近修改赋值操作符的是__newindex元方法,它只适用于表/用户数据,因此对局部变量没有任何影响。在我们的math="foo"示例中,__newindex将位于_G而不是math上,并且在本例中甚至不会被调用,因为_G.math有一个存在的值(当您试图将一个值分配给一个不存在的键时,会调用__newindex)。
https://stackoverflow.com/questions/4517971
复制相似问题