From: Anders B. <an...@cs...> - 2012-08-16 10:03:49
|
Hi. Thanks for a nice tool (SWIG), when it works, it just works! But I have a small problem, where I need for every class that is derived from a base class Referenced add two features (for reference counting). Currently I'm doing it like this: %define ADD_REFERENCED_CLASS(class) %feature("ref") class "$this->reference();" %feature("unref") class "$this->unreference();" %ignore class::unreference; %ignore class::reference; %enddef // Explicitly list all classes that are derived from Referenced ADD_REFERENCED_CLASS(Node) ADD_REFERENCED_CLASS(SomeClass) ADD_REFERENCED_CLASS(SomeOtherClass) ... so we have class Referenced { void reference(); void unReference(); }; class Something : public Referenced { }; class Node : public Something { } Now is there something that could be done to avoid having to list each and every class that is derived from Referenced explicitly? Something that can traverse the inheritance hierarchy and apply this macro whenever it is discovered. Thanks! -- __________________________________________ Anders Backman, HPC2N 90187 Umeå University, Sweden an...@cs... http://www.hpc2n.umu.se Cell: +46-70-392 64 67 |