swig:使c++对象在perl中可打印

swig: make c++ objects printable in perl?

本文关键字:perl 打印 对象 c++ swig      更新时间:2023-10-16

我正在用SWIG为我的c++类创建perl绑定。每个类都有一个C++中的printMe(std::ostream&)方法,以获得良好的输出。我可以用Perl打印我的类吗?这样下面的代码就能产生这个好的输出吗?

my $v = new MyVector();
print $v;

根据您在这里写的内容,可能不是。看起来printMe()方法实际上将格式化后的字符串发送到输出流,这并没有那么有用。您需要的是一个创建字符串然后返回它的方法,这样它就可以被传递到Perl级别,然后作为参数提供给Perl的print内置。

如果有一个C++方法可以返回合适的字符串形式,那么您需要阅读perldoc overload来学习如何使使用它更加方便。