1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
%module(directors="1") director_nested_class
%feature("director") DirectorOuter::DirectorInner;
%feature("director") DirectorOuter::DirectorInner::DirectorInnerInner;
%inline %{
struct DirectorOuter {
struct DirectorInner {
virtual ~DirectorInner() {}
virtual int vmethod(int input) const = 0;
struct DirectorInnerInner {
DirectorInnerInner(DirectorInner *din = 0) {}
virtual ~DirectorInnerInner() {}
virtual int innervmethod(int input) const = 0;
};
};
static int callMethod(const DirectorInner &di, int value) {
return di.vmethod(value);
}
static int callInnerInnerMethod(const DirectorInner::DirectorInnerInner &di, int value) {
return di.innervmethod(value);
}
};
%}
|