2015-02-10 1 views
0

У меня есть следующие объявления в файле интерфейса SWIG и класс под названием Test:SWIG: Как изменить автогенерируемые «delete_xxx» код

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

Приведенные выше декларациях генерировать SWIGINTERN недействительным delete_Test (Test * self) способ в swig сгенерированный файл CPP. Проблема в том, что у меня много классов, и один и тот же код генерируется для всех методов delete_XXX. Я хочу изменить содержимое этого метода delete_XXX для одного конкретного класса. Как мне это сделать?

Я пробовал ключевое слово % ignore, но это просто игнорирует все определение и даже удаляет любые вызовы. Не уверен, что % typedef может использоваться для изменения содержимого метода.

ответ

0

Я решил, добавив следующие строки в файл интерфейса:

%ignore qual_name::~short_name; 
%extend Test { 
public: 
    ~Test() { // custom code here }; 
} 
Смежные вопросы