File: typemap_array_qualifiers.i

package info (click to toggle)
swig 4.1.0-0.2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 47,992 kB
  • sloc: cpp: 50,555; ansic: 27,840; java: 15,366; python: 11,221; cs: 8,852; ruby: 6,307; yacc: 6,290; makefile: 5,702; sh: 5,492; perl: 3,818; php: 3,046; ml: 2,094; lisp: 1,756; javascript: 1,751; tcl: 1,499; xml: 115
file content (93 lines) | stat: -rw-r--r-- 1,998 bytes parent folder | download | duplicates (3)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
%module typemap_array_qualifiers

%define CLEAR_SWIGTYPE_TYPEMAPS
%typemap(in)
   SWIGTYPE,
   SWIGTYPE *,
   SWIGTYPE *const,
   SWIGTYPE *const&,
   const SWIGTYPE *,
   const SWIGTYPE *const,
   const SWIGTYPE *const&,
   const volatile SWIGTYPE *,
   const volatile SWIGTYPE *const,
   const volatile SWIGTYPE *const&,
   SWIGTYPE [],
   SWIGTYPE [ANY],
   const SWIGTYPE [],
   const SWIGTYPE [ANY],
   const volatile SWIGTYPE [],
   const volatile SWIGTYPE [ANY],
   SWIGTYPE &,
   const SWIGTYPE &,
   const volatile SWIGTYPE &
{
%#error Incorrect typemap for $symname: $type
}
%enddef

%{
#if __cplusplus >= 202002L
#define volatile
#endif
%}

%inline %{
  typedef struct {
    int a;
  } SomeType;
  typedef SomeType myarray[3];
  typedef const SomeType myconstarray[4];
  typedef volatile SomeType ** mycrazyarray[5];
  extern "C" {
    typedef volatile SomeType (mycrazyfunc)(SomeType);
    typedef volatile SomeType (*mycrazyfuncptr)(SomeType);
  }
%}

CLEAR_SWIGTYPE_TYPEMAPS;
%typemap(in) SWIGTYPE [ANY] {
$1 = 0;
/* Correct typemap for $symname: $type */
}
%inline %{
  void func1a(myarray x) {}
  void func1b(volatile myarray x) {}
%}

CLEAR_SWIGTYPE_TYPEMAPS;
%typemap(in) const SWIGTYPE [ANY] {
$1 = 0;
/* Correct typemap for $symname: $type */
}
%typemap(in) const volatile SWIGTYPE [ANY] {
$1 = 0;
/* Correct typemap for $symname: $type */
}
%inline %{
  void func2a(const myarray x) {}
  void func2b(const myconstarray x) {}
  void func2c(const volatile myconstarray x) {}
%}

CLEAR_SWIGTYPE_TYPEMAPS;
%typemap(in) volatile SWIGTYPE **const [ANY] {
$1 = 0;
/* Correct typemap for $symname: $type */
}
%typemap(in) volatile SWIGTYPE **const [ANY][ANY] {
$1 = 0;
/* Correct typemap for $symname: $type */
}
%inline %{
  void func3a(const mycrazyarray x, const mycrazyarray y[7]) {}
%}

CLEAR_SWIGTYPE_TYPEMAPS;
%typemap(in) SWIGTYPE (*const) (ANY) {
$1 = 0;
/* Correct typemap for $symname: $type */
}
%inline %{
  void func4a(mycrazyfunc *const x, const mycrazyfuncptr y) {}
%}