File: constructor_copy_non_const.i

package info (click to toggle)
swig 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 46,232 kB
  • sloc: cpp: 54,631; ansic: 29,122; java: 17,530; python: 12,505; cs: 10,369; ruby: 7,232; yacc: 6,477; makefile: 5,965; javascript: 5,520; sh: 5,415; perl: 4,187; php: 3,693; ml: 2,187; lisp: 2,056; tcl: 1,991; xml: 115
file content (71 lines) | stat: -rw-r--r-- 2,095 bytes parent folder | download | duplicates (2)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
%module(ruby_minherit="1") constructor_copy_non_const

// Tests %copyctor and non-const copy constructors in inheritance chain

%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
	    SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
	    SWIGWARN_D_MULTIPLE_INHERITANCE,
	    SWIGWARN_PHP_MULTIPLE_INHERITANCE) CCDerived; /* C#, D, Java, PHP multiple inheritance */
%warnfilter(SWIGWARN_JAVA_MULTIPLE_INHERITANCE,
	    SWIGWARN_CSHARP_MULTIPLE_INHERITANCE,
	    SWIGWARN_D_MULTIPLE_INHERITANCE,
	    SWIGWARN_PHP_MULTIPLE_INHERITANCE) CCProtectedDerived; /* C#, D, Java, PHP multiple inheritance */

%inline %{
  struct CCBase1 {
    CCBase1() {}
  };
%}

%copyctor;

%inline %{
  struct CCBase2 {
    CCBase2() {}
    CCBase2(CCBase2& other) {} // non-const copyctor
  };

  struct CCDerived : CCBase1, CCBase2 {
    CCDerived() {}
    // implicitly declared non-const copyctor
  };
  struct CCMoreDerived : CCDerived {
    // implicitly declared default ctor
    // implicitly declared non-const copyctor
  };
  struct CCMoreDerived2 : CCDerived {
    CCMoreDerived2() {}
    CCMoreDerived2(const CCMoreDerived2& other) {} // const copyctor
  };
  struct CCMoreMoreDerived2 : CCMoreDerived2 {
    // implicitly declared default ctor
    // implicitly declared const copyctor
  };
%}


// Repeat but with protected non-const copyctor
%inline %{
  struct CCProtectedBase2 {
    CCProtectedBase2() {}
  protected:
    CCProtectedBase2(CCProtectedBase2& other) {} // non-const copyctor
  };

  struct CCProtectedDerived : CCBase1, CCProtectedBase2 {
    CCProtectedDerived() {}
    // implicitly declared non-const copyctor
  };
  struct CCProtectedMoreDerived : CCProtectedDerived {
    // implicitly declared default ctor
    // implicitly declared non-const copyctor
  };
  struct CCProtectedMoreDerived2 : CCProtectedDerived {
    CCProtectedMoreDerived2() {}
    CCProtectedMoreDerived2(const CCProtectedMoreDerived2& other) {} // const copyctor
  };
  struct CCProtectedMoreMoreDerived2 : CCProtectedMoreDerived2 {
    // implicitly declared default ctor
    // implicitly declared const copyctor
  };
%}