我有以下类,想要绑定A :: getA和A :: getPt。这两个函数之间的唯一区别是,一个参数作为参数作为参数,另一个参考作为"点"类。
#include <emscripten/bind.h>
using namespace emscripten;
class Point
{
public:
float x, y, z;
};
class A
{
public:
void getA(int &aa) const;
void getPt(Point &pt) const;
private:
int m_a;
Point m_pt;
};
void A::getA(int &a) const
{
a = m_a;
}
void A::getPt(Point &pt) const
{
pt = m_pt;
}
EMSCRIPTEN_BINDINGS(my_class_example) {
class_<A>("A")
.function("getA", & A::getA)
.function("getPt", & A::getPt);
}
但是当我编译时,对A :: getPt的绑定工作正常,但A :: getA没有,我有以下错误:
非常量左值引用类型&#39; int&#39;无法绑定到临时 类型&#39; int&#39; 内部:: BindingType :: fromWireType(参数)... ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
为什么它使用类而不是基本类型?
答案 0 :(得分:0)
因为JavaScript没有通过引用原语参数调用。
var a = 0;
object.getA(a);
// Always a === 0