SWIG:如何更改自动生成的 "delete_xxx" 代码
SWIG: How to change the autogenerated "delete_xxx" code
我在 SWIG 接口文件和一个名为 Test 的 class 中有以下声明:
%extend qual_name {
public:
~short_name()
{
//Do something here
};
}
上述声明在 swig 生成的 CPP 文件中生成了一个 SWIGINTERN void delete_Test(Test* self) 方法。问题是我有很多 classes 并且为所有 delete_XXX 方法生成了相同的代码。我想为一个特定的 class 修改此 delete_XXX 方法的内容。我该怎么做?
我尝试了 %ignore 关键字,但它只是忽略了整个定义,甚至删除了对它的任何调用。不确定是否可以使用 %typedef 来修改方法内容。
我通过在接口文件中添加以下行解决了这个问题:
%ignore qual_name::~short_name;
%extend Test {
public:
~Test() { // custom code here };
}
我在 SWIG 接口文件和一个名为 Test 的 class 中有以下声明:
%extend qual_name {
public:
~short_name()
{
//Do something here
};
}
上述声明在 swig 生成的 CPP 文件中生成了一个 SWIGINTERN void delete_Test(Test* self) 方法。问题是我有很多 classes 并且为所有 delete_XXX 方法生成了相同的代码。我想为一个特定的 class 修改此 delete_XXX 方法的内容。我该怎么做?
我尝试了 %ignore 关键字,但它只是忽略了整个定义,甚至删除了对它的任何调用。不确定是否可以使用 %typedef 来修改方法内容。
我通过在接口文件中添加以下行解决了这个问题:
%ignore qual_name::~short_name;
%extend Test {
public:
~Test() { // custom code here };
}