【问题标题】:SWIG: How to change the autogenerated "delete_xxx" codeSWIG:如何更改自动生成的“delete_xxx”代码
【发布时间】:2015-02-10 08:06:13
【问题描述】:

我在 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 来修改方法内容。

【问题讨论】:

    标签: c++ swig auto-generate


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-05-06
      • 1970-01-01
      • 2014-07-17
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      相关资源
      最近更新 更多