Связующие функции со ссылочными параметрами в Emscripten

У меня есть следующие классы и я хочу связать A :: getA и A :: getPt. Единственное различие между этими двумя функциями состоит в том, что одна принимает в качестве параметра ссылку на int, а другая — на класс «Point».

#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, где у меня появляется следующая ошибка:

неконстантная ссылка lvalue на тип int не может привязываться к временному
типа ‘int’
внутренний :: BindingType :: fromWireType (арг) …
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Почему он работает с классом, а не с базовым типом?

0

Решение

Потому что в JavaScript нет примитивов call by reference.

var a = 0;
object.getA(a);
// Always a === 0
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]