包装 std::vector 的 std::vectors,C++ SWIG Python
Posted
技术标签:
【中文标题】包装 std::vector 的 std::vectors,C++ SWIG Python【英文标题】:Wrap std::vector of std::vectors, C++ SWIG Python 【发布时间】:2010-09-21 15:31:17 【问题描述】:我想使用 SWIG 将向量的 C++ 向量包装到 Python 代码中。
这种类型的向量可以包装吗?
std::vector<std::vector<MyClass*>>;
在接口文件MyApplication.i
我添加了这些行:
%include "std_vector.i"
%
#include <vector>
%
namespace std
%template(VectorOfStructVector) vector<vector<MyClass*>>;
但是,执行 SWIG 时出现错误。我能够包装这种类型(使用对向量的引用):
std::vector<std::vector<MyClass*>*>;
但是,它无法正常工作,我无法访问这些项目。这就是为什么我对这种类型感兴趣(没有参考):
std::vector<std::vector<MyClass*>>;
有什么想法吗?
【问题讨论】:
如果这确实是 C++ 而不是 C++0x,请确保在右尖括号之间包含一个空格。例如>>
应该是> >
我正在讨论评论或回答...
***.com/questions/3754922/… 的副本?
【参考方案1】:
是 C++ 解析问题吗?
std::vector<std::vector<MyClass*> >;
---Important space---------------^
【讨论】:
接口文件中也需要这一行: %template(VectorOfStructVector) vector以上是关于包装 std::vector 的 std::vectors,C++ SWIG Python的主要内容,如果未能解决你的问题,请参考以下文章
包装 std::vector 的 std::vectors,C++ SWIG Python
SWIG 如何正确包装 std::vector<double *>