[英]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.