1 %module default_arg_values
2 
3 %{
4 struct Display {
5   // Some compilers warn about 'float v = NULL', so only SWIG sees this peculiarity
6   // Bad Python wrappers were being generated when NULL used for primitive type
7   float draw1(float v = 0) { return v; }
8   float draw2(float *v = 0) { return v ? *v : 0; }
9   bool bool0(bool x = 0) { return x; }
10   bool bool1(bool x = 1) { return x; }
11 
12   typedef bool mybool;
13   bool mybool0(mybool x = 0) { return x; }
14   bool mybool1(mybool x = 1) { return x; }
15 };
createPtr(float v)16 float* createPtr(float v) { static float val; val = v; return &val; }
17 %}
18 
19 struct Display {
20   // Bad Python wrappers were being generated when NULL used for primitive type
21   float draw1(float v = NULL) { return v; }
22   float draw2(float *v = NULL) { return v ? *v : 0; }
23   bool bool0(bool x = 0) { return x; }
24   bool bool1(bool x = 1) { return x; }
25 
26   typedef bool mybool;
27   bool mybool0(mybool x = 0) { return x; }
28   bool mybool1(mybool x = 1) { return x; }
29 };
createPtr(float v)30 float* createPtr(float v) { static float val; val = v; return &val; }
31