通过SWIG将std :: vector传递给perl会导致seg错误

时间:2015-10-28 22:57:17

标签: c++ perl vector swig

在尝试了一些不同的想法后,我尝试了一些非常简单的东西,它在C ++中定义了几个向量并在perl中写入它们。我想我可能在.i文件中做错了什么

vector.i

 %module vector
%{

%}

 %include "std_vector.i"
 namespace std {
 %template(IntVector) vector<int>;
 %template(DoubleVector) vector<double>;
};

testvec.pl

 use vector;
 my $v = new vector::IntVector();
 print "Empty!\n" if $v->empty;  # Checks of vector is empty. 

 $v->push(42);
 $v->push(13);
 $v->push(16);

 my $v_size = $v->size; # $v_size is now 3.

 my $var1 = $v->pop;    # $var1 is now 16, $v now contains 2 elements.
 my $var2 = $v->get(1); # $var2 is now 13, $v still contains 2 elements.

 $v->set(1,17);         # $v->get(1) will now return 17.

 $v->clear();           # $v is now empty

运行testvec.pl时,会出现段错误。我想我已经定义并初始化了所有的向量。所以我不确定为什么会发生这种分裂。

0 个答案:

没有答案