SWIG:如何更改自动生成的"delete_xxx"代码
SWIG: How to change the autogenerated "delete_xxx" code
我在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 };
}
相关文章:
- 运算符C++ "delete []"仅删除 2 个前值
- g++用户定义的动态链接库上的全局new和delete运算符
- 为什么"delete"关键字不删除节点?
- "delete"在 C++ 中实际上做了什么?
- 析构函数和'delete'之间的区别
- 如何知道何时调用删除以及何时调用 delete[] C++?
- 在对象指针上调用 Delete 是否会递归删除其动态分配的成员
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- 析构函数中的"delete this"
- 为什么数组大小信息可用于"sizeof"运算符和 delete[] 运算符,但在将数组作为参数传递到
- 即使在使用 delete[] 后仍保留的元素
- 如果我在下面的代码片段中添加"delete[] d;",为什么我得到零?
- C++原始指针和"delete"
- 为什么 std::vector 使用 std::分配器而不是运算符 new 和 delete?
- 重载 new 和 delete 会导致 valgrind 错误
- 为什么"delete"操作员给我访问权限冲突
- 在 vscode for c++ 中使用 sqlite3(未定义对 'xxx' 的引用)(我使用了 -lsqlite3)
- 析构函数是否会自动调用 delete[] C++?
- Eclipse/CDT_C++给出"语义错误_"类型XXX无法解决"。项目运行
- 如何正确转发声明结构"using XXX"?