/* File : example.i */ %module example %{ #include "example.h" %} // before we grab the header file, we must warn SWIG about some of these functions. // these functions create data, so must be managed %newobject createCircle; %newobject createSquare; // this method returns as pointer which must be managed %newobject ShapeOwner::remove; // you cannot use %delobject on ShapeOwner::add() // as this disowns the ShapeOwner, not the Shape (oops) //%delobject ShapeOwner::add(Shape*); DO NOT USE // either you can use a new function (such as this) /*%delobject add_Shape; %inline %{ void add_Shape(Shape* s,ShapeOwner* own){own->add(s);} %}*/ // or a better solution is a typemap %apply SWIGTYPE *DISOWN {Shape* ptr}; // now we can grab the header file %include "example.h"