Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ SWIG:向量中包含无法识别的模板类型_C++_Templates_Namespaces_Swig - Fatal编程技术网

C++ SWIG:向量中包含无法识别的模板类型

C++ SWIG:向量中包含无法识别的模板类型,c++,templates,namespaces,swig,C++,Templates,Namespaces,Swig,我无法从这样的定义中获得有效的SWIG输出: std::vector< namespaceA::refPtr< namespaceB::myObj > > 然后我声明我的向量: %template(MyObjRefPtrVector) std::vector< MyObjRefPtr > > // compiles but inner types not resolved %template(MyObjRefPtrVector)std::vector

我无法从这样的定义中获得有效的SWIG输出:

std::vector< namespaceA::refPtr< namespaceB::myObj > >
然后我声明我的向量:

%template(MyObjRefPtrVector) std::vector< MyObjRefPtr > > // compiles but inner types not resolved
%template(MyObjRefPtrVector)std::vector>//编译但未解析内部类型
它编译和SWIG生成四种类型:

  • SWIGTYPE_p_std_vectorNamespacea_refPtrTnamespaceB__MyObj_t_t
  • SWIGTYPE_p_MyObjRefPtr
  • MyObjRefPtr
  • 肌反射记录器
生成的类
MyObjRefPtr
正常。 类
MyObjRefPtrVector
已生成,但方法
add
set
get
SWIGTYPE\u p\u MyObjRefPtr
作为参数,而不是
MyObjRefPtr

有人能告诉我我的代码哪里错了吗?我就是想不出来

而不是

%template(MyObjRefPtrVector) std::vector< MyObjRefPtr > >
%模板(MyObjRefPtrVector)std::vector>
模板声明应该是

%template(MyObjRefPtrVector) std::vector< namespaceA::refPtr< namespaceB::MyObj > >
%模板(MyObjRefPtrVector)std::vector>
%template(MyObjRefPtrVector) std::vector< MyObjRefPtr > >
%template(MyObjRefPtrVector) std::vector< namespaceA::refPtr< namespaceB::MyObj > >