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

时间:2015-02-10 08:06:14

标签: c++ swig auto-generate

我在SWIG界面文件和名为测试的类中有以下声明:

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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