%module(directors="1") director_pass_by_value %director DirectorPassByValueAbstractBase; %inline %{ class PassedByValue { int val; public: PassedByValue() { val = 0x12345678; } int getVal() { return val; } }; int doSomething(int x) { int yy[256]; yy[0] =0x9876; return yy[0]; } class DirectorPassByValueAbstractBase { public: virtual void virtualMethod(PassedByValue pbv) = 0; virtual ~DirectorPassByValueAbstractBase () {} }; class Caller { public: void call_virtualMethod(DirectorPassByValueAbstractBase &f) { f.virtualMethod(PassedByValue()); } }; %}