繁体   English   中英

SWIG INOUT 类型(C++ 到 Python)

[英]SWIG INOUT types (C++ to Python)

我正在为 C++ api 创建一个 python 包装器,使用模板或多或少直接支持某些类型,但 api 需要一些引用变量,其中一个是 int,另一个是 float。

如果我没有错,它是通过创建一个 INOUT 应用来完成的,例如:

%apply float& INOUT { float& a };
%apply int& INOUT { int& a };

但是我如何在我的 python 中使用这些类型?

提前感谢您提供任何提示。

这些参数是从生成的 python 函数返回的(不完全直观,考虑到包装的 C++ 函数签名)。 假设这是您公开的功能:

%apply float& INOUT { float& a };
%apply int& INOUT { int& b };

void foo(float& a, int& b);

你会从 python 调用它

a = 3.14
b = 42

a, b = foo(a, b)

如果不捕获返回值,则ab保持不变。

亲爱的未来读者,这些是您正在寻找的机器人:

myapi.new_intp()
myapi.new_floatp()  
myapi.intp_value(a)
myapi.floatp_value(b)
myapi.delete_intp(a)
myapi.delete_floatp(b)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM