diff options
author | Alistair Delva <adelva@google.com> | 2024-04-10 14:15:29 -0700 |
---|---|---|
committer | Alistair Delva <adelva@google.com> | 2024-04-11 12:58:28 -0700 |
commit | d0f0f90be16c2ac553b5fa08512045273135147a (patch) | |
tree | 5d9ebb7a04807ea8a609ddd18b0162bc87530e4b /Examples/test-suite/director_multiple_inheritance.i | |
parent | 6ffc1dbf29ba98c4d8aa71ebc9b484e973fe1030 (diff) | |
download | swig-d0f0f90be16c2ac553b5fa08512045273135147a.tar.gz |
Update to v4.2.1HEADmastermainllvm-r522817
Change-Id: I47cef2be94299220d80265d949a95b58eee2c23b
Diffstat (limited to 'Examples/test-suite/director_multiple_inheritance.i')
-rw-r--r-- | Examples/test-suite/director_multiple_inheritance.i | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/Examples/test-suite/director_multiple_inheritance.i b/Examples/test-suite/director_multiple_inheritance.i new file mode 100644 index 000000000..ff50cfeba --- /dev/null +++ b/Examples/test-suite/director_multiple_inheritance.i @@ -0,0 +1,71 @@ +//%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; } + +%} |