У меня есть функция c ++, такая как:
int add(int *i, int j) {
*i += 3;
return *i + j;
}
Я создал для нее привязку к Python, используя pybind11 как
PYBIND11_MODULE(example, m) {
m.doc() = R"pbdoc(add)pbdoc";
m.def("add", &add, R"pbdoc(Add two numbers)pbdoc");
}
Я вызываю ее в python как:
>>import example
>>a=1
>>example.add(a,2)
>>6 --> This is correct
>>a
>>1 --> This is not what expect
Возвращает 6, что правильно. Однако, когда я печатаю «а», он все равно печатает 1 вместо 4. Как я могу изменить определение pybind11, чтобы изменения в значении аргумента внутри C ++ были видны в python