繁体   English   中英

javaout typemap不适用于std :: vector

[英]javaout typemap doesn't work for std::vector

当我使用int一切正常-

%immutable S::field;

%typemap(javaout) int S::field {
  //custom code
}

struct S {
  int field;
};

但是方法不适用于std::vector<int>

%include <std_vector.i>

%immutable S::field;
%template(vector_int) std::vector<int>;

%typemap(javaout) std::vector<int> S::field {
  //custom code
}

struct S {
  std::vector<int> field;
};

使用swig -java -c++ -module sample sample.i编译swig -java -c++ -module sample sample.i

请参阅有关结构数据成员的Swig文档。

关键是:

包装结构成员时,除非将%naturalvar伪指令用于更像C ++引用的地方,否则它将作为指针处理。

因此,您需要定义的类型图是

%typemap(javaout) std::vector<int>* S::field {
    //custom code
}

(如果您使用%naturalvar %typemap(javaout) std::vector<int>& S::field )。

暂无
暂无

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

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