由于 SWIG 不理解 boost 类型,因此必须编写类型映射。这是一对 的类型映射boost::optional<int>。
在 Python 中,None或者可以将整数传递到函数中:
%typemap(in) boost::optional<int> %{
if($input == Py_None)
$1 = boost::optional<int>();
else
$1 = boost::optional<int>(PyLong_AsLong($input));
%}
Run Code Online (Sandbox Code Playgroud)
返回的 Aboost::optional<int>将转换为 None 或 Python 整数:
%typemap(out) boost::optional<int> %{
if($1)
$result = PyLong_FromLong(*$1);
else
{
$result = Py_None;
Py_INCREF(Py_None);
}
%}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1465 次 |
| 最近记录: |