SWIG:如何更改自动生成的"delete_xxx"代码

SWIG: How to change the autogenerated "delete_xxx" code

本文关键字:delete xxx 代码 何更改 自动生成 SWIG      更新时间:2023-10-16

我在SWIG接口文件和一个名为Test的类中有以下声明:

 %extend qual_name {
 public:
    ~short_name() 
    {
        //Do something here
    };
 }

上述声明在swig生成的CPP文件中生成SWIGINTERN void delete_Test(Test*self)方法。问题是我有很多类,并且为所有delete_XXX方法生成了相同的代码。我想修改一个特定类的delete_XXX方法的内容。我该怎么做?

我尝试了%ignore关键字,但它只是忽略了整个定义,甚至删除了对它的任何调用。不确定%typedef是否可以用于修改方法内容。

我通过在接口文件中添加以下行来解决它:

 %ignore qual_name::~short_name;
 %extend Test {  
 public:  
    ~Test() { // custom code here };  
 }