rice 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. data/Doxyfile +1 -1
  2. data/Makefile.in +130 -52
  3. data/README +45 -79
  4. data/Rakefile +1 -36
  5. data/aclocal.m4 +133 -61
  6. data/config.guess +43 -8
  7. data/config.sub +41 -13
  8. data/configure +1370 -1898
  9. data/configure.ac +2 -2
  10. data/doxygen.ac +1 -1
  11. data/extconf.rb +3 -1
  12. data/rice/Arg_impl.hpp +2 -2
  13. data/rice/Data_Type.cpp +34 -1
  14. data/rice/Data_Type.ipp +14 -5
  15. data/rice/Data_Type_defn.hpp +28 -1
  16. data/rice/Director.cpp +0 -6
  17. data/rice/Director.hpp +0 -8
  18. data/rice/Hash.hpp +1 -1
  19. data/rice/Makefile.am +2 -12
  20. data/rice/Makefile.in +111 -88
  21. data/rice/Object.cpp +8 -1
  22. data/rice/Object.ipp +1 -1
  23. data/rice/Object_defn.hpp +8 -0
  24. data/rice/config.hpp +3 -0
  25. data/rice/config.hpp.in +3 -0
  26. data/rice/detail/Auto_Function_Wrapper.ipp +1025 -512
  27. data/rice/detail/Auto_Member_Function_Wrapper.ipp +545 -272
  28. data/rice/detail/cfp.hpp +24 -0
  29. data/rice/detail/cfp.ipp +51 -0
  30. data/rice/detail/method_data.cpp +107 -336
  31. data/rice/detail/node.hpp +13 -13
  32. data/rice/detail/ruby.hpp +4 -0
  33. data/rice/detail/rubysig.hpp +19 -19
  34. data/rice/detail/traits.hpp +43 -0
  35. data/rice/generate_code.rb +37 -16
  36. data/rice/protect.hpp +1 -1
  37. data/rice/protect.ipp +448 -192
  38. data/rice/to_from_ruby.ipp +4 -12
  39. data/rice/to_from_ruby_defn.hpp +2 -2
  40. data/ruby/Makefile.in +99 -32
  41. data/ruby/lib/Makefile.in +61 -21
  42. data/ruby/lib/mkmf-rice.rb.in +9 -2
  43. data/ruby/lib/version.rb +1 -1
  44. data/sample/Makefile.in +33 -10
  45. data/test/Makefile.am +27 -0
  46. data/test/Makefile.in +270 -59
  47. data/test/ext/Makefile.am +43 -0
  48. data/test/ext/Makefile.in +399 -0
  49. data/test/ext/t1/Foo.hpp +10 -0
  50. data/test/ext/t1/extconf.rb +2 -0
  51. data/test/ext/t1/t1.cpp +15 -0
  52. data/test/ext/t2/extconf.rb +2 -0
  53. data/test/ext/t2/t2.cpp +11 -0
  54. data/test/test_Allocation_Strategies.cpp +1 -1
  55. data/test/test_Class.cpp +79 -0
  56. data/test/test_Data_Type.cpp +2 -2
  57. data/test/test_Director.cpp +114 -38
  58. data/test/test_Module.cpp +27 -2
  59. data/test/test_To_From_Ruby.cpp +4 -4
  60. data/test/test_rice.rb +9 -1
  61. metadata +23 -8
  62. data/rice/detail/method_data.cpp.rpp +0 -301
  63. data/rice/detail/mininode.cpp.rpp +0 -62
  64. data/rice/detail/mininode.hpp.rpp +0 -119
  65. data/rice/detail/remove_const.hpp +0 -21
@@ -10,6 +10,7 @@
10
10
  #include "method_data.hpp"
11
11
  #include "../ruby_try_catch.hpp"
12
12
  #include "../to_from_ruby.hpp"
13
+ #include "traits.hpp"
13
14
  #include <typeinfo>
14
15
  namespace Rice
15
16
  {
@@ -54,22 +55,38 @@ call(int argc, VALUE* argv, VALUE self)
54
55
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14, &varg15);
55
56
 
56
57
  Self_T * obj = from_ruby<Self_T *>(self);
57
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
58
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
59
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
60
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
61
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
62
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
63
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
64
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
65
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
66
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
67
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
68
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
69
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
70
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
71
- Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
72
- Arg15_T arg15 = args->getArgumentOrDefault<Arg15_T>(15, varg15);
58
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
59
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
60
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
61
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
62
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
63
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
64
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
65
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
66
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
67
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
68
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
69
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
70
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
71
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
72
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
73
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
74
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
75
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
76
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
77
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
78
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
79
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
80
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
81
+ Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
82
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
83
+ Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
84
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
85
+ Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
86
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
87
+ Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
88
+ typedef typename sanitize< Arg15_T >::Type Arg15_Type;
89
+ Arg15_Type arg15 = args->getArgumentOrDefault<Arg15_Type>(15, varg15);
73
90
 
74
91
  Func func = wrapper->func_;
75
92
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15));
@@ -128,22 +145,38 @@ call(int argc, VALUE* argv, VALUE self)
128
145
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14, &varg15);
129
146
 
130
147
  Self_T * obj = from_ruby<Self_T *>(self);
131
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
132
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
133
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
134
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
135
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
136
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
137
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
138
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
139
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
140
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
141
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
142
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
143
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
144
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
145
- Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
146
- Arg15_T arg15 = args->getArgumentOrDefault<Arg15_T>(15, varg15);
148
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
149
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
150
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
151
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
152
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
153
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
154
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
155
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
156
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
157
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
158
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
159
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
160
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
161
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
162
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
163
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
164
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
165
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
166
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
167
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
168
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
169
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
170
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
171
+ Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
172
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
173
+ Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
174
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
175
+ Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
176
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
177
+ Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
178
+ typedef typename sanitize< Arg15_T >::Type Arg15_Type;
179
+ Arg15_Type arg15 = args->getArgumentOrDefault<Arg15_Type>(15, varg15);
147
180
 
148
181
  Func func = wrapper->func_;
149
182
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
@@ -204,21 +237,36 @@ call(int argc, VALUE* argv, VALUE self)
204
237
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14);
205
238
 
206
239
  Self_T * obj = from_ruby<Self_T *>(self);
207
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
208
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
209
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
210
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
211
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
212
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
213
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
214
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
215
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
216
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
217
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
218
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
219
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
220
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
221
- Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
240
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
241
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
242
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
243
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
244
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
245
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
246
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
247
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
248
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
249
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
250
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
251
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
252
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
253
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
254
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
255
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
256
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
257
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
258
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
259
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
260
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
261
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
262
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
263
+ Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
264
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
265
+ Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
266
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
267
+ Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
268
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
269
+ Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
222
270
 
223
271
  Func func = wrapper->func_;
224
272
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14));
@@ -277,21 +325,36 @@ call(int argc, VALUE* argv, VALUE self)
277
325
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13, &varg14);
278
326
 
279
327
  Self_T * obj = from_ruby<Self_T *>(self);
280
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
281
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
282
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
283
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
284
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
285
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
286
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
287
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
288
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
289
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
290
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
291
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
292
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
293
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
294
- Arg14_T arg14 = args->getArgumentOrDefault<Arg14_T>(14, varg14);
328
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
329
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
330
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
331
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
332
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
333
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
334
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
335
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
336
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
337
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
338
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
339
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
340
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
341
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
342
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
343
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
344
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
345
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
346
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
347
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
348
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
349
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
350
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
351
+ Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
352
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
353
+ Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
354
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
355
+ Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
356
+ typedef typename sanitize< Arg14_T >::Type Arg14_Type;
357
+ Arg14_Type arg14 = args->getArgumentOrDefault<Arg14_Type>(14, varg14);
295
358
 
296
359
  Func func = wrapper->func_;
297
360
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
@@ -352,20 +415,34 @@ call(int argc, VALUE* argv, VALUE self)
352
415
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13);
353
416
 
354
417
  Self_T * obj = from_ruby<Self_T *>(self);
355
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
356
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
357
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
358
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
359
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
360
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
361
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
362
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
363
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
364
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
365
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
366
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
367
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
368
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
418
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
419
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
420
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
421
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
422
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
423
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
424
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
425
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
426
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
427
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
428
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
429
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
430
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
431
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
432
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
433
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
434
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
435
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
436
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
437
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
438
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
439
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
440
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
441
+ Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
442
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
443
+ Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
444
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
445
+ Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
369
446
 
370
447
  Func func = wrapper->func_;
371
448
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13));
@@ -424,20 +501,34 @@ call(int argc, VALUE* argv, VALUE self)
424
501
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12, &varg13);
425
502
 
426
503
  Self_T * obj = from_ruby<Self_T *>(self);
427
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
428
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
429
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
430
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
431
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
432
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
433
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
434
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
435
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
436
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
437
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
438
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
439
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
440
- Arg13_T arg13 = args->getArgumentOrDefault<Arg13_T>(13, varg13);
504
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
505
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
506
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
507
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
508
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
509
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
510
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
511
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
512
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
513
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
514
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
515
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
516
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
517
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
518
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
519
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
520
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
521
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
522
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
523
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
524
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
525
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
526
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
527
+ Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
528
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
529
+ Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
530
+ typedef typename sanitize< Arg13_T >::Type Arg13_Type;
531
+ Arg13_Type arg13 = args->getArgumentOrDefault<Arg13_Type>(13, varg13);
441
532
 
442
533
  Func func = wrapper->func_;
443
534
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
@@ -498,19 +589,32 @@ call(int argc, VALUE* argv, VALUE self)
498
589
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12);
499
590
 
500
591
  Self_T * obj = from_ruby<Self_T *>(self);
501
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
502
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
503
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
504
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
505
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
506
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
507
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
508
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
509
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
510
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
511
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
512
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
513
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
592
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
593
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
594
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
595
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
596
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
597
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
598
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
599
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
600
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
601
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
602
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
603
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
604
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
605
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
606
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
607
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
608
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
609
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
610
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
611
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
612
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
613
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
614
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
615
+ Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
616
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
617
+ Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
514
618
 
515
619
  Func func = wrapper->func_;
516
620
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12));
@@ -569,19 +673,32 @@ call(int argc, VALUE* argv, VALUE self)
569
673
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11, &varg12);
570
674
 
571
675
  Self_T * obj = from_ruby<Self_T *>(self);
572
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
573
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
574
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
575
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
576
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
577
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
578
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
579
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
580
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
581
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
582
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
583
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
584
- Arg12_T arg12 = args->getArgumentOrDefault<Arg12_T>(12, varg12);
676
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
677
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
678
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
679
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
680
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
681
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
682
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
683
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
684
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
685
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
686
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
687
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
688
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
689
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
690
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
691
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
692
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
693
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
694
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
695
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
696
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
697
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
698
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
699
+ Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
700
+ typedef typename sanitize< Arg12_T >::Type Arg12_Type;
701
+ Arg12_Type arg12 = args->getArgumentOrDefault<Arg12_Type>(12, varg12);
585
702
 
586
703
  Func func = wrapper->func_;
587
704
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
@@ -642,18 +759,30 @@ call(int argc, VALUE* argv, VALUE self)
642
759
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11);
643
760
 
644
761
  Self_T * obj = from_ruby<Self_T *>(self);
645
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
646
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
647
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
648
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
649
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
650
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
651
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
652
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
653
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
654
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
655
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
656
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
762
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
763
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
764
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
765
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
766
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
767
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
768
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
769
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
770
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
771
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
772
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
773
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
774
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
775
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
776
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
777
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
778
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
779
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
780
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
781
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
782
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
783
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
784
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
785
+ Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
657
786
 
658
787
  Func func = wrapper->func_;
659
788
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11));
@@ -712,18 +841,30 @@ call(int argc, VALUE* argv, VALUE self)
712
841
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10, &varg11);
713
842
 
714
843
  Self_T * obj = from_ruby<Self_T *>(self);
715
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
716
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
717
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
718
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
719
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
720
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
721
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
722
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
723
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
724
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
725
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
726
- Arg11_T arg11 = args->getArgumentOrDefault<Arg11_T>(11, varg11);
844
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
845
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
846
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
847
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
848
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
849
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
850
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
851
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
852
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
853
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
854
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
855
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
856
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
857
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
858
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
859
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
860
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
861
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
862
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
863
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
864
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
865
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
866
+ typedef typename sanitize< Arg11_T >::Type Arg11_Type;
867
+ Arg11_Type arg11 = args->getArgumentOrDefault<Arg11_Type>(11, varg11);
727
868
 
728
869
  Func func = wrapper->func_;
729
870
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
@@ -784,17 +925,28 @@ call(int argc, VALUE* argv, VALUE self)
784
925
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10);
785
926
 
786
927
  Self_T * obj = from_ruby<Self_T *>(self);
787
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
788
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
789
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
790
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
791
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
792
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
793
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
794
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
795
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
796
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
797
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
928
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
929
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
930
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
931
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
932
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
933
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
934
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
935
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
936
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
937
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
938
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
939
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
940
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
941
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
942
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
943
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
944
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
945
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
946
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
947
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
948
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
949
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
798
950
 
799
951
  Func func = wrapper->func_;
800
952
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10));
@@ -853,17 +1005,28 @@ call(int argc, VALUE* argv, VALUE self)
853
1005
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9, &varg10);
854
1006
 
855
1007
  Self_T * obj = from_ruby<Self_T *>(self);
856
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
857
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
858
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
859
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
860
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
861
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
862
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
863
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
864
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
865
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
866
- Arg10_T arg10 = args->getArgumentOrDefault<Arg10_T>(10, varg10);
1008
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1009
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1010
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1011
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1012
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1013
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1014
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1015
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1016
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1017
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1018
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1019
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1020
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1021
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1022
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1023
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1024
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1025
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
1026
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
1027
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
1028
+ typedef typename sanitize< Arg10_T >::Type Arg10_Type;
1029
+ Arg10_Type arg10 = args->getArgumentOrDefault<Arg10_Type>(10, varg10);
867
1030
 
868
1031
  Func func = wrapper->func_;
869
1032
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
@@ -924,16 +1087,26 @@ call(int argc, VALUE* argv, VALUE self)
924
1087
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9);
925
1088
 
926
1089
  Self_T * obj = from_ruby<Self_T *>(self);
927
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
928
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
929
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
930
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
931
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
932
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
933
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
934
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
935
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
936
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
1090
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1091
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1092
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1093
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1094
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1095
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1096
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1097
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1098
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1099
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1100
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1101
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1102
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1103
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1104
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1105
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1106
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1107
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
1108
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
1109
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
937
1110
 
938
1111
  Func func = wrapper->func_;
939
1112
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9));
@@ -992,16 +1165,26 @@ call(int argc, VALUE* argv, VALUE self)
992
1165
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8, &varg9);
993
1166
 
994
1167
  Self_T * obj = from_ruby<Self_T *>(self);
995
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
996
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
997
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
998
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
999
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1000
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1001
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1002
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1003
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
1004
- Arg9_T arg9 = args->getArgumentOrDefault<Arg9_T>(9, varg9);
1168
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1169
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1170
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1171
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1172
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1173
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1174
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1175
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1176
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1177
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1178
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1179
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1180
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1181
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1182
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1183
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1184
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1185
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
1186
+ typedef typename sanitize< Arg9_T >::Type Arg9_Type;
1187
+ Arg9_Type arg9 = args->getArgumentOrDefault<Arg9_Type>(9, varg9);
1005
1188
 
1006
1189
  Func func = wrapper->func_;
1007
1190
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
@@ -1062,15 +1245,24 @@ call(int argc, VALUE* argv, VALUE self)
1062
1245
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8);
1063
1246
 
1064
1247
  Self_T * obj = from_ruby<Self_T *>(self);
1065
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1066
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1067
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1068
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1069
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1070
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1071
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1072
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1073
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
1248
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1249
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1250
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1251
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1252
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1253
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1254
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1255
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1256
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1257
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1258
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1259
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1260
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1261
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1262
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1263
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1264
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1265
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
1074
1266
 
1075
1267
  Func func = wrapper->func_;
1076
1268
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8));
@@ -1129,15 +1321,24 @@ call(int argc, VALUE* argv, VALUE self)
1129
1321
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7, &varg8);
1130
1322
 
1131
1323
  Self_T * obj = from_ruby<Self_T *>(self);
1132
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1133
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1134
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1135
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1136
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1137
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1138
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1139
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1140
- Arg8_T arg8 = args->getArgumentOrDefault<Arg8_T>(8, varg8);
1324
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1325
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1326
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1327
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1328
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1329
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1330
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1331
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1332
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1333
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1334
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1335
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1336
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1337
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1338
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1339
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1340
+ typedef typename sanitize< Arg8_T >::Type Arg8_Type;
1341
+ Arg8_Type arg8 = args->getArgumentOrDefault<Arg8_Type>(8, varg8);
1141
1342
 
1142
1343
  Func func = wrapper->func_;
1143
1344
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
@@ -1198,14 +1399,22 @@ call(int argc, VALUE* argv, VALUE self)
1198
1399
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7);
1199
1400
 
1200
1401
  Self_T * obj = from_ruby<Self_T *>(self);
1201
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1202
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1203
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1204
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1205
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1206
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1207
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1208
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1402
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1403
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1404
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1405
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1406
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1407
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1408
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1409
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1410
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1411
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1412
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1413
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1414
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1415
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1416
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1417
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1209
1418
 
1210
1419
  Func func = wrapper->func_;
1211
1420
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7));
@@ -1264,14 +1473,22 @@ call(int argc, VALUE* argv, VALUE self)
1264
1473
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6, &varg7);
1265
1474
 
1266
1475
  Self_T * obj = from_ruby<Self_T *>(self);
1267
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1268
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1269
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1270
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1271
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1272
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1273
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1274
- Arg7_T arg7 = args->getArgumentOrDefault<Arg7_T>(7, varg7);
1476
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1477
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1478
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1479
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1480
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1481
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1482
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1483
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1484
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1485
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1486
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1487
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1488
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1489
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1490
+ typedef typename sanitize< Arg7_T >::Type Arg7_Type;
1491
+ Arg7_Type arg7 = args->getArgumentOrDefault<Arg7_Type>(7, varg7);
1275
1492
 
1276
1493
  Func func = wrapper->func_;
1277
1494
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
@@ -1332,13 +1549,20 @@ call(int argc, VALUE* argv, VALUE self)
1332
1549
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6);
1333
1550
 
1334
1551
  Self_T * obj = from_ruby<Self_T *>(self);
1335
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1336
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1337
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1338
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1339
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1340
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1341
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1552
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1553
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1554
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1555
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1556
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1557
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1558
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1559
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1560
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1561
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1562
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1563
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1564
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1565
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1342
1566
 
1343
1567
  Func func = wrapper->func_;
1344
1568
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6));
@@ -1397,13 +1621,20 @@ call(int argc, VALUE* argv, VALUE self)
1397
1621
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5, &varg6);
1398
1622
 
1399
1623
  Self_T * obj = from_ruby<Self_T *>(self);
1400
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1401
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1402
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1403
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1404
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1405
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1406
- Arg6_T arg6 = args->getArgumentOrDefault<Arg6_T>(6, varg6);
1624
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1625
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1626
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1627
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1628
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1629
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1630
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1631
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1632
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1633
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1634
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1635
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1636
+ typedef typename sanitize< Arg6_T >::Type Arg6_Type;
1637
+ Arg6_Type arg6 = args->getArgumentOrDefault<Arg6_Type>(6, varg6);
1407
1638
 
1408
1639
  Func func = wrapper->func_;
1409
1640
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
@@ -1464,12 +1695,18 @@ call(int argc, VALUE* argv, VALUE self)
1464
1695
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5);
1465
1696
 
1466
1697
  Self_T * obj = from_ruby<Self_T *>(self);
1467
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1468
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1469
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1470
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1471
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1472
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1698
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1699
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1700
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1701
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1702
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1703
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1704
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1705
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1706
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1707
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1708
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1709
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1473
1710
 
1474
1711
  Func func = wrapper->func_;
1475
1712
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5));
@@ -1528,12 +1765,18 @@ call(int argc, VALUE* argv, VALUE self)
1528
1765
  &varg0, &varg1, &varg2, &varg3, &varg4, &varg5);
1529
1766
 
1530
1767
  Self_T * obj = from_ruby<Self_T *>(self);
1531
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1532
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1533
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1534
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1535
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1536
- Arg5_T arg5 = args->getArgumentOrDefault<Arg5_T>(5, varg5);
1768
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1769
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1770
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1771
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1772
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1773
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1774
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1775
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1776
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1777
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1778
+ typedef typename sanitize< Arg5_T >::Type Arg5_Type;
1779
+ Arg5_Type arg5 = args->getArgumentOrDefault<Arg5_Type>(5, varg5);
1537
1780
 
1538
1781
  Func func = wrapper->func_;
1539
1782
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4, arg5);
@@ -1594,11 +1837,16 @@ call(int argc, VALUE* argv, VALUE self)
1594
1837
  &varg0, &varg1, &varg2, &varg3, &varg4);
1595
1838
 
1596
1839
  Self_T * obj = from_ruby<Self_T *>(self);
1597
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1598
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1599
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1600
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1601
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1840
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1841
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1842
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1843
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1844
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1845
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1846
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1847
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1848
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1849
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1602
1850
 
1603
1851
  Func func = wrapper->func_;
1604
1852
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3, arg4));
@@ -1657,11 +1905,16 @@ call(int argc, VALUE* argv, VALUE self)
1657
1905
  &varg0, &varg1, &varg2, &varg3, &varg4);
1658
1906
 
1659
1907
  Self_T * obj = from_ruby<Self_T *>(self);
1660
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1661
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1662
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1663
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1664
- Arg4_T arg4 = args->getArgumentOrDefault<Arg4_T>(4, varg4);
1908
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1909
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1910
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1911
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1912
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1913
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1914
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1915
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1916
+ typedef typename sanitize< Arg4_T >::Type Arg4_Type;
1917
+ Arg4_Type arg4 = args->getArgumentOrDefault<Arg4_Type>(4, varg4);
1665
1918
 
1666
1919
  Func func = wrapper->func_;
1667
1920
  (*obj.*func)(arg0, arg1, arg2, arg3, arg4);
@@ -1722,10 +1975,14 @@ call(int argc, VALUE* argv, VALUE self)
1722
1975
  &varg0, &varg1, &varg2, &varg3);
1723
1976
 
1724
1977
  Self_T * obj = from_ruby<Self_T *>(self);
1725
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1726
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1727
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1728
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
1978
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
1979
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
1980
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
1981
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1982
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
1983
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1984
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
1985
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1729
1986
 
1730
1987
  Func func = wrapper->func_;
1731
1988
  return to_ruby((*obj.*func)(arg0, arg1, arg2, arg3));
@@ -1784,10 +2041,14 @@ call(int argc, VALUE* argv, VALUE self)
1784
2041
  &varg0, &varg1, &varg2, &varg3);
1785
2042
 
1786
2043
  Self_T * obj = from_ruby<Self_T *>(self);
1787
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1788
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1789
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
1790
- Arg3_T arg3 = args->getArgumentOrDefault<Arg3_T>(3, varg3);
2044
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2045
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2046
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2047
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
2048
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
2049
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
2050
+ typedef typename sanitize< Arg3_T >::Type Arg3_Type;
2051
+ Arg3_Type arg3 = args->getArgumentOrDefault<Arg3_Type>(3, varg3);
1791
2052
 
1792
2053
  Func func = wrapper->func_;
1793
2054
  (*obj.*func)(arg0, arg1, arg2, arg3);
@@ -1848,9 +2109,12 @@ call(int argc, VALUE* argv, VALUE self)
1848
2109
  &varg0, &varg1, &varg2);
1849
2110
 
1850
2111
  Self_T * obj = from_ruby<Self_T *>(self);
1851
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1852
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1853
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
2112
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2113
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2114
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2115
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
2116
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
2117
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1854
2118
 
1855
2119
  Func func = wrapper->func_;
1856
2120
  return to_ruby((*obj.*func)(arg0, arg1, arg2));
@@ -1909,9 +2173,12 @@ call(int argc, VALUE* argv, VALUE self)
1909
2173
  &varg0, &varg1, &varg2);
1910
2174
 
1911
2175
  Self_T * obj = from_ruby<Self_T *>(self);
1912
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1913
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
1914
- Arg2_T arg2 = args->getArgumentOrDefault<Arg2_T>(2, varg2);
2176
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2177
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2178
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2179
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
2180
+ typedef typename sanitize< Arg2_T >::Type Arg2_Type;
2181
+ Arg2_Type arg2 = args->getArgumentOrDefault<Arg2_Type>(2, varg2);
1915
2182
 
1916
2183
  Func func = wrapper->func_;
1917
2184
  (*obj.*func)(arg0, arg1, arg2);
@@ -1972,8 +2239,10 @@ call(int argc, VALUE* argv, VALUE self)
1972
2239
  &varg0, &varg1);
1973
2240
 
1974
2241
  Self_T * obj = from_ruby<Self_T *>(self);
1975
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
1976
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
2242
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2243
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2244
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2245
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
1977
2246
 
1978
2247
  Func func = wrapper->func_;
1979
2248
  return to_ruby((*obj.*func)(arg0, arg1));
@@ -2032,8 +2301,10 @@ call(int argc, VALUE* argv, VALUE self)
2032
2301
  &varg0, &varg1);
2033
2302
 
2034
2303
  Self_T * obj = from_ruby<Self_T *>(self);
2035
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
2036
- Arg1_T arg1 = args->getArgumentOrDefault<Arg1_T>(1, varg1);
2304
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2305
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2306
+ typedef typename sanitize< Arg1_T >::Type Arg1_Type;
2307
+ Arg1_Type arg1 = args->getArgumentOrDefault<Arg1_Type>(1, varg1);
2037
2308
 
2038
2309
  Func func = wrapper->func_;
2039
2310
  (*obj.*func)(arg0, arg1);
@@ -2094,7 +2365,8 @@ call(int argc, VALUE* argv, VALUE self)
2094
2365
  &varg0);
2095
2366
 
2096
2367
  Self_T * obj = from_ruby<Self_T *>(self);
2097
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
2368
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2369
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2098
2370
 
2099
2371
  Func func = wrapper->func_;
2100
2372
  return to_ruby((*obj.*func)(arg0));
@@ -2153,7 +2425,8 @@ call(int argc, VALUE* argv, VALUE self)
2153
2425
  &varg0);
2154
2426
 
2155
2427
  Self_T * obj = from_ruby<Self_T *>(self);
2156
- Arg0_T arg0 = args->getArgumentOrDefault<Arg0_T>(0, varg0);
2428
+ typedef typename sanitize< Arg0_T >::Type Arg0_Type;
2429
+ Arg0_Type arg0 = args->getArgumentOrDefault<Arg0_Type>(0, varg0);
2157
2430
 
2158
2431
  Func func = wrapper->func_;
2159
2432
  (*obj.*func)(arg0);