summaryrefslogtreecommitdiff
path: root/Examples/test-suite/cpp11_final_directors.i
blob: b58111adb661341cd68efe0a2a7eab8b687aff5f (plain)
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
26
27
28
29
30
31
32
33
%module(directors="1") cpp11_final_directors

%director Derived;

// Check SWIG will not wrap these classes as directors where the destructors are final
%director BaseFinalDestructor;
%director BaseFinalDestructor2;

%warnfilter(SWIGWARN_LANG_DIRECTOR_FINAL) BaseFinalDestructor::~BaseFinalDestructor;
%warnfilter(SWIGWARN_LANG_DIRECTOR_FINAL) BaseFinalDestructor2::~BaseFinalDestructor2;

%inline %{
struct Base {
  virtual void basemeth() final {}
  virtual ~Base() {}
};

struct Derived : Base {
  virtual int derivedmeth() final { return 1; }
  virtual int meth() { return 2; }
  virtual ~Derived() {}
};

struct BaseFinalDestructor {
  virtual void basefinalmeth() final {}
  virtual ~BaseFinalDestructor() final {}
};

struct BaseFinalDestructor2 {
  virtual void basefinalmeth() {}
  virtual ~BaseFinalDestructor2() final {}
};
%}