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