rice 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. data/Doxyfile +1 -1
  2. data/Makefile.in +3 -2
  3. data/README +247 -16
  4. data/aclocal.m4 +62 -51
  5. data/configure +1585 -1456
  6. data/extconf.rb +9 -1
  7. data/rice/Arg.hpp +8 -0
  8. data/rice/Arg_impl.hpp +124 -0
  9. data/rice/Arg_operators.cpp +21 -0
  10. data/rice/Arg_operators.hpp +19 -0
  11. data/rice/Constructor.hpp +150 -0
  12. data/rice/Data_Type.ipp +51 -6
  13. data/rice/Director.cpp +19 -0
  14. data/rice/Director.hpp +47 -0
  15. data/rice/Enum.hpp +2 -3
  16. data/rice/Enum.ipp +1 -1
  17. data/rice/Hash.hpp +1 -1
  18. data/rice/Makefile.am +7 -0
  19. data/rice/Makefile.in +18 -7
  20. data/rice/Module_impl.hpp +36 -3
  21. data/rice/Module_impl.ipp +56 -7
  22. data/rice/VM.cpp +2 -2
  23. data/rice/config.hpp +1 -1
  24. data/rice/detail/Arguments.hpp +118 -0
  25. data/rice/detail/Auto_Function_Wrapper.hpp +206 -96
  26. data/rice/detail/Auto_Function_Wrapper.ipp +1687 -144
  27. data/rice/detail/Auto_Member_Function_Wrapper.hpp +234 -123
  28. data/rice/detail/Auto_Member_Function_Wrapper.ipp +1133 -306
  29. data/rice/detail/Caster.hpp +3 -1
  30. data/rice/detail/creation_funcs.hpp +0 -8
  31. data/rice/detail/creation_funcs.ipp +1 -27
  32. data/rice/detail/define_method_and_auto_wrap.hpp +3 -1
  33. data/rice/detail/define_method_and_auto_wrap.ipp +4 -3
  34. data/rice/detail/object_call.ipp +1 -1
  35. data/rice/detail/ruby.hpp +1 -33
  36. data/rice/detail/wrap_function.hpp +103 -48
  37. data/rice/detail/wrap_function.ipp +154 -96
  38. data/rice/generate_code.rb +520 -55
  39. data/rice/global_function.hpp +12 -1
  40. data/rice/global_function.ipp +14 -2
  41. data/ruby/Makefile.in +5 -4
  42. data/ruby/lib/Makefile.in +4 -3
  43. data/ruby/lib/version.rb +1 -1
  44. data/sample/Makefile.in +4 -3
  45. data/test/Makefile.am +2 -0
  46. data/test/Makefile.in +32 -13
  47. data/test/test_Class.cpp +36 -14
  48. data/test/test_Constructor.cpp +176 -1
  49. data/test/test_Data_Type.cpp +121 -0
  50. data/test/test_Director.cpp +225 -0
  51. data/test/test_Enum.cpp +33 -0
  52. data/test/test_Module.cpp +175 -0
  53. data/test/test_global_functions.cpp +70 -1
  54. metadata +27 -7
@@ -15,451 +15,509 @@ namespace Rice
15
15
  namespace detail
16
16
  {
17
17
 
18
+ template<typename Ret_T>
19
+ Wrapped_Function * wrap_function(
20
+ Ret_T (*func)(),
21
+ Data_Object<Exception_Handler> handler,
22
+ Arguments* arguments)
23
+ {
24
+ typedef Ret_T (*Func)();
25
+ return new Auto_Function_Wrapper<Func, Ret_T>(func, handler, arguments);
26
+ }
27
+
18
28
  template<typename Ret_T, typename Arg0_T>
19
29
  Wrapped_Function * wrap_function(
20
30
  Ret_T (*func)(Arg0_T),
21
- Data_Object<Exception_Handler> handler)
31
+ Data_Object<Exception_Handler> handler,
32
+ Arguments* arguments)
22
33
  {
23
34
  typedef Ret_T (*Func)(Arg0_T);
24
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T>(func, handler);
35
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T>(func, handler, arguments);
25
36
  }
26
37
 
27
38
  template<typename Ret_T, typename Self_T>
28
39
  Wrapped_Function * wrap_function(
29
40
  Ret_T (Self_T::*func)(),
30
- Data_Object<Exception_Handler> handler)
41
+ Data_Object<Exception_Handler> handler,
42
+ Arguments* arguments)
31
43
  {
32
44
  typedef Ret_T (Self_T::*Func)();
33
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T>(func, handler);
45
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T>(func, handler, arguments);
34
46
  }
35
47
 
36
48
  template<typename Ret_T, typename Self_T>
37
49
  Wrapped_Function * wrap_function(
38
50
  Ret_T (Self_T::*func)() const,
39
- Data_Object<Exception_Handler> handler)
51
+ Data_Object<Exception_Handler> handler,
52
+ Arguments* arguments)
40
53
  {
41
54
  typedef Ret_T (Self_T::*Func)() const;
42
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T>(func, handler);
55
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T>(func, handler, arguments);
43
56
  }
44
57
 
45
58
  // ---------------------------------------------------------------------
46
59
  template<typename Ret_T, typename Arg0_T, typename Arg1_T>
47
60
  Wrapped_Function * wrap_function(
48
61
  Ret_T (*func)(Arg0_T, Arg1_T),
49
- Data_Object<Exception_Handler> handler)
62
+ Data_Object<Exception_Handler> handler,
63
+ Arguments* arguments)
50
64
  {
51
65
  typedef Ret_T (*Func)(Arg0_T, Arg1_T);
52
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T>(func, handler);
66
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T>(func, handler, arguments);
53
67
  }
54
68
 
55
69
  template<typename Ret_T, typename Self_T, typename Arg1_T>
56
70
  Wrapped_Function * wrap_function(
57
71
  Ret_T (Self_T::*func)(Arg1_T),
58
- Data_Object<Exception_Handler> handler)
72
+ Data_Object<Exception_Handler> handler,
73
+ Arguments* arguments)
59
74
  {
60
75
  typedef Ret_T (Self_T::*Func)(Arg1_T);
61
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T>(func, handler);
76
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T>(func, handler, arguments);
62
77
  }
63
78
 
64
79
  template<typename Ret_T, typename Self_T, typename Arg1_T>
65
80
  Wrapped_Function * wrap_function(
66
81
  Ret_T (Self_T::*func)(Arg1_T) const,
67
- Data_Object<Exception_Handler> handler)
82
+ Data_Object<Exception_Handler> handler,
83
+ Arguments* arguments)
68
84
  {
69
85
  typedef Ret_T (Self_T::*Func)(Arg1_T) const;
70
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T>(func, handler);
86
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T>(func, handler, arguments);
71
87
  }
72
88
 
73
89
  // ---------------------------------------------------------------------
74
90
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
75
91
  Wrapped_Function * wrap_function(
76
92
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T),
77
- Data_Object<Exception_Handler> handler)
93
+ Data_Object<Exception_Handler> handler,
94
+ Arguments* arguments)
78
95
  {
79
96
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T);
80
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T>(func, handler);
97
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T>(func, handler, arguments);
81
98
  }
82
99
 
83
100
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
84
101
  Wrapped_Function * wrap_function(
85
102
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T),
86
- Data_Object<Exception_Handler> handler)
103
+ Data_Object<Exception_Handler> handler,
104
+ Arguments* arguments)
87
105
  {
88
106
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T);
89
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T>(func, handler);
107
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T>(func, handler, arguments);
90
108
  }
91
109
 
92
110
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
93
111
  Wrapped_Function * wrap_function(
94
112
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T) const,
95
- Data_Object<Exception_Handler> handler)
113
+ Data_Object<Exception_Handler> handler,
114
+ Arguments* arguments)
96
115
  {
97
116
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T) const;
98
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T>(func, handler);
117
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T>(func, handler, arguments);
99
118
  }
100
119
 
101
120
  // ---------------------------------------------------------------------
102
121
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
103
122
  Wrapped_Function * wrap_function(
104
123
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T),
105
- Data_Object<Exception_Handler> handler)
124
+ Data_Object<Exception_Handler> handler,
125
+ Arguments* arguments)
106
126
  {
107
127
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T);
108
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>(func, handler);
128
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>(func, handler, arguments);
109
129
  }
110
130
 
111
131
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
112
132
  Wrapped_Function * wrap_function(
113
133
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T),
114
- Data_Object<Exception_Handler> handler)
134
+ Data_Object<Exception_Handler> handler,
135
+ Arguments* arguments)
115
136
  {
116
137
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T);
117
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T>(func, handler);
138
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T>(func, handler, arguments);
118
139
  }
119
140
 
120
141
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
121
142
  Wrapped_Function * wrap_function(
122
143
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T) const,
123
- Data_Object<Exception_Handler> handler)
144
+ Data_Object<Exception_Handler> handler,
145
+ Arguments* arguments)
124
146
  {
125
147
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T) const;
126
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T>(func, handler);
148
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T>(func, handler, arguments);
127
149
  }
128
150
 
129
151
  // ---------------------------------------------------------------------
130
152
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
131
153
  Wrapped_Function * wrap_function(
132
154
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T),
133
- Data_Object<Exception_Handler> handler)
155
+ Data_Object<Exception_Handler> handler,
156
+ Arguments* arguments)
134
157
  {
135
158
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T);
136
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler);
159
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler, arguments);
137
160
  }
138
161
 
139
162
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
140
163
  Wrapped_Function * wrap_function(
141
164
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T),
142
- Data_Object<Exception_Handler> handler)
165
+ Data_Object<Exception_Handler> handler,
166
+ Arguments* arguments)
143
167
  {
144
168
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T);
145
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler);
169
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler, arguments);
146
170
  }
147
171
 
148
172
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
149
173
  Wrapped_Function * wrap_function(
150
174
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T) const,
151
- Data_Object<Exception_Handler> handler)
175
+ Data_Object<Exception_Handler> handler,
176
+ Arguments* arguments)
152
177
  {
153
178
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T) const;
154
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler);
179
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler, arguments);
155
180
  }
156
181
 
157
182
  // ---------------------------------------------------------------------
158
183
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
159
184
  Wrapped_Function * wrap_function(
160
185
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
161
- Data_Object<Exception_Handler> handler)
186
+ Data_Object<Exception_Handler> handler,
187
+ Arguments* arguments)
162
188
  {
163
189
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T);
164
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler);
190
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler, arguments);
165
191
  }
166
192
 
167
193
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
168
194
  Wrapped_Function * wrap_function(
169
195
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
170
- Data_Object<Exception_Handler> handler)
196
+ Data_Object<Exception_Handler> handler,
197
+ Arguments* arguments)
171
198
  {
172
199
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T);
173
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler);
200
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler, arguments);
174
201
  }
175
202
 
176
203
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
177
204
  Wrapped_Function * wrap_function(
178
205
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T) const,
179
- Data_Object<Exception_Handler> handler)
206
+ Data_Object<Exception_Handler> handler,
207
+ Arguments* arguments)
180
208
  {
181
209
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T) const;
182
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler);
210
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler, arguments);
183
211
  }
184
212
 
185
213
  // ---------------------------------------------------------------------
186
214
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
187
215
  Wrapped_Function * wrap_function(
188
216
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
189
- Data_Object<Exception_Handler> handler)
217
+ Data_Object<Exception_Handler> handler,
218
+ Arguments* arguments)
190
219
  {
191
220
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T);
192
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler);
221
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler, arguments);
193
222
  }
194
223
 
195
224
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
196
225
  Wrapped_Function * wrap_function(
197
226
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
198
- Data_Object<Exception_Handler> handler)
227
+ Data_Object<Exception_Handler> handler,
228
+ Arguments* arguments)
199
229
  {
200
230
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T);
201
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler);
231
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler, arguments);
202
232
  }
203
233
 
204
234
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
205
235
  Wrapped_Function * wrap_function(
206
236
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T) const,
207
- Data_Object<Exception_Handler> handler)
237
+ Data_Object<Exception_Handler> handler,
238
+ Arguments* arguments)
208
239
  {
209
240
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T) const;
210
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler);
241
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler, arguments);
211
242
  }
212
243
 
213
244
  // ---------------------------------------------------------------------
214
245
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
215
246
  Wrapped_Function * wrap_function(
216
247
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
217
- Data_Object<Exception_Handler> handler)
248
+ Data_Object<Exception_Handler> handler,
249
+ Arguments* arguments)
218
250
  {
219
251
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T);
220
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler);
252
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler, arguments);
221
253
  }
222
254
 
223
255
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
224
256
  Wrapped_Function * wrap_function(
225
257
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
226
- Data_Object<Exception_Handler> handler)
258
+ Data_Object<Exception_Handler> handler,
259
+ Arguments* arguments)
227
260
  {
228
261
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T);
229
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler);
262
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler, arguments);
230
263
  }
231
264
 
232
265
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
233
266
  Wrapped_Function * wrap_function(
234
267
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T) const,
235
- Data_Object<Exception_Handler> handler)
268
+ Data_Object<Exception_Handler> handler,
269
+ Arguments* arguments)
236
270
  {
237
271
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T) const;
238
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler);
272
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler, arguments);
239
273
  }
240
274
 
241
275
  // ---------------------------------------------------------------------
242
276
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
243
277
  Wrapped_Function * wrap_function(
244
278
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
245
- Data_Object<Exception_Handler> handler)
279
+ Data_Object<Exception_Handler> handler,
280
+ Arguments* arguments)
246
281
  {
247
282
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T);
248
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler);
283
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler, arguments);
249
284
  }
250
285
 
251
286
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
252
287
  Wrapped_Function * wrap_function(
253
288
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
254
- Data_Object<Exception_Handler> handler)
289
+ Data_Object<Exception_Handler> handler,
290
+ Arguments* arguments)
255
291
  {
256
292
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T);
257
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler);
293
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler, arguments);
258
294
  }
259
295
 
260
296
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T>
261
297
  Wrapped_Function * wrap_function(
262
298
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T) const,
263
- Data_Object<Exception_Handler> handler)
299
+ Data_Object<Exception_Handler> handler,
300
+ Arguments* arguments)
264
301
  {
265
302
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T) const;
266
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler);
303
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler, arguments);
267
304
  }
268
305
 
269
306
  // ---------------------------------------------------------------------
270
307
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
271
308
  Wrapped_Function * wrap_function(
272
309
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
273
- Data_Object<Exception_Handler> handler)
310
+ Data_Object<Exception_Handler> handler,
311
+ Arguments* arguments)
274
312
  {
275
313
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T);
276
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler);
314
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler, arguments);
277
315
  }
278
316
 
279
317
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
280
318
  Wrapped_Function * wrap_function(
281
319
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
282
- Data_Object<Exception_Handler> handler)
320
+ Data_Object<Exception_Handler> handler,
321
+ Arguments* arguments)
283
322
  {
284
323
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T);
285
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler);
324
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler, arguments);
286
325
  }
287
326
 
288
327
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T>
289
328
  Wrapped_Function * wrap_function(
290
329
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T) const,
291
- Data_Object<Exception_Handler> handler)
330
+ Data_Object<Exception_Handler> handler,
331
+ Arguments* arguments)
292
332
  {
293
333
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T) const;
294
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler);
334
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler, arguments);
295
335
  }
296
336
 
297
337
  // ---------------------------------------------------------------------
298
338
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
299
339
  Wrapped_Function * wrap_function(
300
340
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T),
301
- Data_Object<Exception_Handler> handler)
341
+ Data_Object<Exception_Handler> handler,
342
+ Arguments* arguments)
302
343
  {
303
344
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T);
304
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>(func, handler);
345
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>(func, handler, arguments);
305
346
  }
306
347
 
307
348
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
308
349
  Wrapped_Function * wrap_function(
309
350
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T),
310
- Data_Object<Exception_Handler> handler)
351
+ Data_Object<Exception_Handler> handler,
352
+ Arguments* arguments)
311
353
  {
312
354
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T);
313
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>(func, handler);
355
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>(func, handler, arguments);
314
356
  }
315
357
 
316
358
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T>
317
359
  Wrapped_Function * wrap_function(
318
360
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T) const,
319
- Data_Object<Exception_Handler> handler)
361
+ Data_Object<Exception_Handler> handler,
362
+ Arguments* arguments)
320
363
  {
321
364
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T) const;
322
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>(func, handler);
365
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T>(func, handler, arguments);
323
366
  }
324
367
 
325
368
  // ---------------------------------------------------------------------
326
369
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
327
370
  Wrapped_Function * wrap_function(
328
371
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T),
329
- Data_Object<Exception_Handler> handler)
372
+ Data_Object<Exception_Handler> handler,
373
+ Arguments* arguments)
330
374
  {
331
375
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T);
332
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>(func, handler);
376
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>(func, handler, arguments);
333
377
  }
334
378
 
335
379
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
336
380
  Wrapped_Function * wrap_function(
337
381
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T),
338
- Data_Object<Exception_Handler> handler)
382
+ Data_Object<Exception_Handler> handler,
383
+ Arguments* arguments)
339
384
  {
340
385
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T);
341
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>(func, handler);
386
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>(func, handler, arguments);
342
387
  }
343
388
 
344
389
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T>
345
390
  Wrapped_Function * wrap_function(
346
391
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T) const,
347
- Data_Object<Exception_Handler> handler)
392
+ Data_Object<Exception_Handler> handler,
393
+ Arguments* arguments)
348
394
  {
349
395
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T) const;
350
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>(func, handler);
396
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T>(func, handler, arguments);
351
397
  }
352
398
 
353
399
  // ---------------------------------------------------------------------
354
400
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
355
401
  Wrapped_Function * wrap_function(
356
402
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T),
357
- Data_Object<Exception_Handler> handler)
403
+ Data_Object<Exception_Handler> handler,
404
+ Arguments* arguments)
358
405
  {
359
406
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T);
360
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>(func, handler);
407
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>(func, handler, arguments);
361
408
  }
362
409
 
363
410
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
364
411
  Wrapped_Function * wrap_function(
365
412
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T),
366
- Data_Object<Exception_Handler> handler)
413
+ Data_Object<Exception_Handler> handler,
414
+ Arguments* arguments)
367
415
  {
368
416
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T);
369
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>(func, handler);
417
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>(func, handler, arguments);
370
418
  }
371
419
 
372
420
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T>
373
421
  Wrapped_Function * wrap_function(
374
422
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T) const,
375
- Data_Object<Exception_Handler> handler)
423
+ Data_Object<Exception_Handler> handler,
424
+ Arguments* arguments)
376
425
  {
377
426
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T) const;
378
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>(func, handler);
427
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T>(func, handler, arguments);
379
428
  }
380
429
 
381
430
  // ---------------------------------------------------------------------
382
431
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
383
432
  Wrapped_Function * wrap_function(
384
433
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T),
385
- Data_Object<Exception_Handler> handler)
434
+ Data_Object<Exception_Handler> handler,
435
+ Arguments* arguments)
386
436
  {
387
437
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T);
388
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>(func, handler);
438
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>(func, handler, arguments);
389
439
  }
390
440
 
391
441
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
392
442
  Wrapped_Function * wrap_function(
393
443
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T),
394
- Data_Object<Exception_Handler> handler)
444
+ Data_Object<Exception_Handler> handler,
445
+ Arguments* arguments)
395
446
  {
396
447
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T);
397
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>(func, handler);
448
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>(func, handler, arguments);
398
449
  }
399
450
 
400
451
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T>
401
452
  Wrapped_Function * wrap_function(
402
453
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T) const,
403
- Data_Object<Exception_Handler> handler)
454
+ Data_Object<Exception_Handler> handler,
455
+ Arguments* arguments)
404
456
  {
405
457
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T) const;
406
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>(func, handler);
458
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T>(func, handler, arguments);
407
459
  }
408
460
 
409
461
  // ---------------------------------------------------------------------
410
462
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
411
463
  Wrapped_Function * wrap_function(
412
464
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T),
413
- Data_Object<Exception_Handler> handler)
465
+ Data_Object<Exception_Handler> handler,
466
+ Arguments* arguments)
414
467
  {
415
468
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T);
416
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>(func, handler);
469
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>(func, handler, arguments);
417
470
  }
418
471
 
419
472
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
420
473
  Wrapped_Function * wrap_function(
421
474
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T),
422
- Data_Object<Exception_Handler> handler)
475
+ Data_Object<Exception_Handler> handler,
476
+ Arguments* arguments)
423
477
  {
424
478
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T);
425
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>(func, handler);
479
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>(func, handler, arguments);
426
480
  }
427
481
 
428
482
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T>
429
483
  Wrapped_Function * wrap_function(
430
484
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T) const,
431
- Data_Object<Exception_Handler> handler)
485
+ Data_Object<Exception_Handler> handler,
486
+ Arguments* arguments)
432
487
  {
433
488
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T) const;
434
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>(func, handler);
489
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T>(func, handler, arguments);
435
490
  }
436
491
 
437
492
  // ---------------------------------------------------------------------
438
493
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
439
494
  Wrapped_Function * wrap_function(
440
495
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T),
441
- Data_Object<Exception_Handler> handler)
496
+ Data_Object<Exception_Handler> handler,
497
+ Arguments* arguments)
442
498
  {
443
499
  typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T);
444
- return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>(func, handler);
500
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>(func, handler, arguments);
445
501
  }
446
502
 
447
503
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
448
504
  Wrapped_Function * wrap_function(
449
505
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T),
450
- Data_Object<Exception_Handler> handler)
506
+ Data_Object<Exception_Handler> handler,
507
+ Arguments* arguments)
451
508
  {
452
509
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T);
453
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>(func, handler);
510
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>(func, handler, arguments);
454
511
  }
455
512
 
456
513
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_T, typename Arg13_T, typename Arg14_T, typename Arg15_T>
457
514
  Wrapped_Function * wrap_function(
458
515
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T) const,
459
- Data_Object<Exception_Handler> handler)
516
+ Data_Object<Exception_Handler> handler,
517
+ Arguments* arguments)
460
518
  {
461
519
  typedef Ret_T (Self_T::*Func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T) const;
462
- return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>(func, handler);
520
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T, Arg13_T, Arg14_T, Arg15_T>(func, handler, arguments);
463
521
  }
464
522
 
465
523
  // ---------------------------------------------------------------------