//%module(ruby_minherit="1") multiple_inheritance %module(directors="1") director_multiple_inheritance %feature("director") A; %feature("director") B; %feature("director") C; %feature("director") D; %inline %{ class A { public: virtual ~A() { } virtual int testA(); }; class B: virtual public A { public: virtual ~B() { } virtual int testB(); }; class C: virtual public A { public: virtual ~C() { } virtual int testC(); }; class D: virtual public A { public: virtual ~D() { } virtual int testD(); }; class E { public: virtual ~E() { } virtual int testE(B*); }; class F { public: virtual ~F() { } virtual int testF(C*); }; class T { public: virtual ~T() { } virtual int testT(D*); }; %} %{ int A::testA() { return 1; } int B::testB() { return 2; } int C::testC() { return 3; } int D::testD() { return 4; } int E::testE(B*) { return 5; } int F::testF(C*) { return 6; } int T::testT(D*) { return 20; } %}