wurlinc-rice 1.4.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. data/COPYING +23 -0
  2. data/Doxyfile +1253 -0
  3. data/Makefile.am +26 -0
  4. data/README +1119 -0
  5. data/README.mingw +8 -0
  6. data/Rakefile +33 -0
  7. data/bootstrap +9 -0
  8. data/configure.ac +52 -0
  9. data/doxygen.ac +314 -0
  10. data/doxygen.am +186 -0
  11. data/extconf.rb +41 -0
  12. data/post-autoconf.rb +22 -0
  13. data/post-automake.rb +28 -0
  14. data/rice/Address_Registration_Guard.hpp +7 -0
  15. data/rice/Address_Registration_Guard.ipp +34 -0
  16. data/rice/Address_Registration_Guard_defn.hpp +65 -0
  17. data/rice/Allocation_Strategies.hpp +37 -0
  18. data/rice/Arg.hpp +8 -0
  19. data/rice/Arg_impl.hpp +127 -0
  20. data/rice/Arg_operators.cpp +21 -0
  21. data/rice/Arg_operators.hpp +19 -0
  22. data/rice/Array.hpp +220 -0
  23. data/rice/Array.ipp +263 -0
  24. data/rice/Builtin_Object.hpp +8 -0
  25. data/rice/Builtin_Object.ipp +50 -0
  26. data/rice/Builtin_Object_defn.hpp +51 -0
  27. data/rice/Class.cpp +57 -0
  28. data/rice/Class.hpp +8 -0
  29. data/rice/Class.ipp +6 -0
  30. data/rice/Class_defn.hpp +83 -0
  31. data/rice/Constructor.hpp +367 -0
  32. data/rice/Critical_Guard.hpp +40 -0
  33. data/rice/Critical_Guard.ipp +26 -0
  34. data/rice/Data_Object.hpp +8 -0
  35. data/rice/Data_Object.ipp +133 -0
  36. data/rice/Data_Object_defn.hpp +132 -0
  37. data/rice/Data_Type.cpp +54 -0
  38. data/rice/Data_Type.hpp +8 -0
  39. data/rice/Data_Type.ipp +365 -0
  40. data/rice/Data_Type_defn.hpp +261 -0
  41. data/rice/Data_Type_fwd.hpp +12 -0
  42. data/rice/Director.cpp +13 -0
  43. data/rice/Director.hpp +39 -0
  44. data/rice/Enum.hpp +117 -0
  45. data/rice/Enum.ipp +246 -0
  46. data/rice/Exception.cpp +59 -0
  47. data/rice/Exception.hpp +9 -0
  48. data/rice/Exception_Base.hpp +8 -0
  49. data/rice/Exception_Base.ipp +13 -0
  50. data/rice/Exception_Base_defn.hpp +27 -0
  51. data/rice/Exception_defn.hpp +69 -0
  52. data/rice/Hash.hpp +210 -0
  53. data/rice/Hash.ipp +338 -0
  54. data/rice/Identifier.cpp +8 -0
  55. data/rice/Identifier.hpp +50 -0
  56. data/rice/Identifier.ipp +33 -0
  57. data/rice/Jump_Tag.hpp +24 -0
  58. data/rice/Makefile.am +129 -0
  59. data/rice/Module.cpp +84 -0
  60. data/rice/Module.hpp +8 -0
  61. data/rice/Module.ipp +6 -0
  62. data/rice/Module_defn.hpp +88 -0
  63. data/rice/Module_impl.hpp +281 -0
  64. data/rice/Module_impl.ipp +348 -0
  65. data/rice/Object.cpp +160 -0
  66. data/rice/Object.hpp +8 -0
  67. data/rice/Object.ipp +19 -0
  68. data/rice/Object_defn.hpp +191 -0
  69. data/rice/Require_Guard.hpp +21 -0
  70. data/rice/String.cpp +94 -0
  71. data/rice/String.hpp +89 -0
  72. data/rice/Struct.cpp +117 -0
  73. data/rice/Struct.hpp +162 -0
  74. data/rice/Struct.ipp +26 -0
  75. data/rice/Symbol.cpp +25 -0
  76. data/rice/Symbol.hpp +66 -0
  77. data/rice/Symbol.ipp +44 -0
  78. data/rice/VM.cpp +92 -0
  79. data/rice/VM.hpp +32 -0
  80. data/rice/config.hpp.in +40 -0
  81. data/rice/detail/Arguments.hpp +118 -0
  82. data/rice/detail/Auto_Function_Wrapper.hpp +829 -0
  83. data/rice/detail/Auto_Function_Wrapper.ipp +3391 -0
  84. data/rice/detail/Auto_Member_Function_Wrapper.hpp +828 -0
  85. data/rice/detail/Auto_Member_Function_Wrapper.ipp +2503 -0
  86. data/rice/detail/Caster.hpp +103 -0
  87. data/rice/detail/Exception_Handler.hpp +8 -0
  88. data/rice/detail/Exception_Handler.ipp +68 -0
  89. data/rice/detail/Exception_Handler_defn.hpp +96 -0
  90. data/rice/detail/Iterator.hpp +93 -0
  91. data/rice/detail/Not_Copyable.hpp +25 -0
  92. data/rice/detail/Wrapped_Function.hpp +33 -0
  93. data/rice/detail/cfp.hpp +24 -0
  94. data/rice/detail/cfp.ipp +51 -0
  95. data/rice/detail/check_ruby_type.cpp +27 -0
  96. data/rice/detail/check_ruby_type.hpp +23 -0
  97. data/rice/detail/creation_funcs.hpp +37 -0
  98. data/rice/detail/creation_funcs.ipp +36 -0
  99. data/rice/detail/default_allocation_func.hpp +23 -0
  100. data/rice/detail/default_allocation_func.ipp +11 -0
  101. data/rice/detail/define_method_and_auto_wrap.hpp +31 -0
  102. data/rice/detail/define_method_and_auto_wrap.ipp +30 -0
  103. data/rice/detail/demangle.cpp +56 -0
  104. data/rice/detail/demangle.hpp +19 -0
  105. data/rice/detail/env.hpp +19 -0
  106. data/rice/detail/from_ruby.hpp +43 -0
  107. data/rice/detail/from_ruby.ipp +60 -0
  108. data/rice/detail/method_data.cpp +159 -0
  109. data/rice/detail/method_data.hpp +21 -0
  110. data/rice/detail/mininode.cpp +1220 -0
  111. data/rice/detail/mininode.hpp +320 -0
  112. data/rice/detail/node.hpp +13 -0
  113. data/rice/detail/object_call.hpp +68 -0
  114. data/rice/detail/object_call.ipp +131 -0
  115. data/rice/detail/protect.cpp +29 -0
  116. data/rice/detail/protect.hpp +34 -0
  117. data/rice/detail/ruby.hpp +93 -0
  118. data/rice/detail/ruby_version_code.hpp.in +6 -0
  119. data/rice/detail/rubysig.hpp +19 -0
  120. data/rice/detail/st.hpp +60 -0
  121. data/rice/detail/to_ruby.hpp +22 -0
  122. data/rice/detail/to_ruby.ipp +36 -0
  123. data/rice/detail/traits.hpp +43 -0
  124. data/rice/detail/win32.hpp +16 -0
  125. data/rice/detail/wrap_function.hpp +341 -0
  126. data/rice/detail/wrap_function.ipp +514 -0
  127. data/rice/global_function.hpp +33 -0
  128. data/rice/global_function.ipp +22 -0
  129. data/rice/protect.hpp +91 -0
  130. data/rice/protect.ipp +1133 -0
  131. data/rice/ruby_mark.hpp +13 -0
  132. data/rice/ruby_try_catch.hpp +86 -0
  133. data/rice/rubypp.rb +97 -0
  134. data/rice/to_from_ruby.hpp +8 -0
  135. data/rice/to_from_ruby.ipp +297 -0
  136. data/rice/to_from_ruby_defn.hpp +71 -0
  137. data/ruby/Makefile.am +1 -0
  138. data/ruby/lib/Makefile.am +3 -0
  139. data/ruby/lib/mkmf-rice.rb.in +216 -0
  140. data/ruby/lib/version.rb +3 -0
  141. data/ruby.ac +136 -0
  142. data/sample/Makefile.am +47 -0
  143. data/sample/enum/extconf.rb +3 -0
  144. data/sample/enum/sample_enum.cpp +54 -0
  145. data/sample/enum/test.rb +8 -0
  146. data/sample/inheritance/animals.cpp +98 -0
  147. data/sample/inheritance/extconf.rb +3 -0
  148. data/sample/inheritance/test.rb +7 -0
  149. data/sample/map/extconf.rb +3 -0
  150. data/sample/map/map.cpp +81 -0
  151. data/sample/map/test.rb +7 -0
  152. data/test/Makefile.am +78 -0
  153. data/test/ext/Makefile.am +43 -0
  154. data/test/ext/t1/Foo.hpp +10 -0
  155. data/test/ext/t1/extconf.rb +2 -0
  156. data/test/ext/t1/t1.cpp +15 -0
  157. data/test/ext/t2/extconf.rb +2 -0
  158. data/test/ext/t2/t2.cpp +11 -0
  159. data/test/test_Address_Registration_Guard.cpp +43 -0
  160. data/test/test_Allocation_Strategies.cpp +77 -0
  161. data/test/test_Array.cpp +241 -0
  162. data/test/test_Builtin_Object.cpp +72 -0
  163. data/test/test_Class.cpp +498 -0
  164. data/test/test_Constructor.cpp +128 -0
  165. data/test/test_Critical_Guard.cpp +51 -0
  166. data/test/test_Data_Object.cpp +275 -0
  167. data/test/test_Data_Type.cpp +348 -0
  168. data/test/test_Director.cpp +301 -0
  169. data/test/test_Enum.cpp +195 -0
  170. data/test/test_Exception.cpp +46 -0
  171. data/test/test_Hash.cpp +195 -0
  172. data/test/test_Identifier.cpp +70 -0
  173. data/test/test_Jump_Tag.cpp +17 -0
  174. data/test/test_Memory_Management.cpp +50 -0
  175. data/test/test_Module.cpp +481 -0
  176. data/test/test_Object.cpp +148 -0
  177. data/test/test_String.cpp +94 -0
  178. data/test/test_Struct.cpp +192 -0
  179. data/test/test_Symbol.cpp +63 -0
  180. data/test/test_To_From_Ruby.cpp +263 -0
  181. data/test/test_VM.cpp +26 -0
  182. data/test/test_global_functions.cpp +114 -0
  183. data/test/test_rice.rb +43 -0
  184. data/test/unittest.cpp +136 -0
  185. data/test/unittest.hpp +292 -0
  186. metadata +276 -0
@@ -0,0 +1,514 @@
1
+ #ifndef Rice__detail__wrap_function__ipp_
2
+ #define Rice__detail__wrap_function__ipp_
3
+
4
+ // This is a generated file. DO NOT EDIT!!
5
+
6
+
7
+ // This causes problems with certain C++ libraries
8
+ #undef TYPE
9
+
10
+ #include "Auto_Function_Wrapper.hpp"
11
+ #include "Auto_Member_Function_Wrapper.hpp"
12
+ namespace Rice
13
+ {
14
+
15
+ namespace detail
16
+ {
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
+
28
+ template<typename Ret_T, typename Arg0_T>
29
+ Wrapped_Function * wrap_function(
30
+ Ret_T (*func)(Arg0_T),
31
+ Data_Object<Exception_Handler> handler,
32
+ Arguments* arguments)
33
+ {
34
+ typedef Ret_T (*Func)(Arg0_T);
35
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T>(func, handler, arguments);
36
+ }
37
+
38
+ template<typename Ret_T, typename Self_T>
39
+ Wrapped_Function * wrap_function(
40
+ Ret_T (Self_T::*func)(),
41
+ Data_Object<Exception_Handler> handler,
42
+ Arguments* arguments)
43
+ {
44
+ typedef Ret_T (Self_T::*Func)();
45
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T>(func, handler, arguments);
46
+ }
47
+
48
+ template<typename Ret_T, typename Self_T>
49
+ Wrapped_Function * wrap_function(
50
+ Ret_T (Self_T::*func)() const,
51
+ Data_Object<Exception_Handler> handler,
52
+ Arguments* arguments)
53
+ {
54
+ typedef Ret_T (Self_T::*Func)() const;
55
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T>(func, handler, arguments);
56
+ }
57
+
58
+ // ---------------------------------------------------------------------
59
+
60
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T>
61
+ Wrapped_Function * wrap_function(
62
+ Ret_T (*func)(Arg0_T, Arg1_T),
63
+ Data_Object<Exception_Handler> handler,
64
+ Arguments* arguments)
65
+ {
66
+ typedef Ret_T (*Func)(Arg0_T, Arg1_T);
67
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T>(func, handler, arguments);
68
+ }
69
+
70
+ template<typename Ret_T, typename Self_T, typename Arg0_T>
71
+ Wrapped_Function * wrap_function(
72
+ Ret_T (Self_T::*func)(Arg0_T),
73
+ Data_Object<Exception_Handler> handler,
74
+ Arguments* arguments)
75
+ {
76
+ typedef Ret_T (Self_T::*Func)(Arg0_T);
77
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T>(func, handler, arguments);
78
+ }
79
+
80
+ template<typename Ret_T, typename Self_T, typename Arg0_T>
81
+ Wrapped_Function * wrap_function(
82
+ Ret_T (Self_T::*func)(Arg0_T) const,
83
+ Data_Object<Exception_Handler> handler,
84
+ Arguments* arguments)
85
+ {
86
+ typedef Ret_T (Self_T::*Func)(Arg0_T) const;
87
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T>(func, handler, arguments);
88
+ }
89
+
90
+ // ---------------------------------------------------------------------
91
+
92
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
93
+ Wrapped_Function * wrap_function(
94
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T),
95
+ Data_Object<Exception_Handler> handler,
96
+ Arguments* arguments)
97
+ {
98
+ typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T);
99
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T>(func, handler, arguments);
100
+ }
101
+
102
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
103
+ Wrapped_Function * wrap_function(
104
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T),
105
+ Data_Object<Exception_Handler> handler,
106
+ Arguments* arguments)
107
+ {
108
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T);
109
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T>(func, handler, arguments);
110
+ }
111
+
112
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
113
+ Wrapped_Function * wrap_function(
114
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T) const,
115
+ Data_Object<Exception_Handler> handler,
116
+ Arguments* arguments)
117
+ {
118
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T) const;
119
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T>(func, handler, arguments);
120
+ }
121
+
122
+ // ---------------------------------------------------------------------
123
+
124
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
125
+ Wrapped_Function * wrap_function(
126
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T),
127
+ Data_Object<Exception_Handler> handler,
128
+ Arguments* arguments)
129
+ {
130
+ typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T);
131
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>(func, handler, arguments);
132
+ }
133
+
134
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
135
+ Wrapped_Function * wrap_function(
136
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T),
137
+ Data_Object<Exception_Handler> handler,
138
+ Arguments* arguments)
139
+ {
140
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T);
141
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T>(func, handler, arguments);
142
+ }
143
+
144
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
145
+ Wrapped_Function * wrap_function(
146
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T) const,
147
+ Data_Object<Exception_Handler> handler,
148
+ Arguments* arguments)
149
+ {
150
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T) const;
151
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T>(func, handler, arguments);
152
+ }
153
+
154
+ // ---------------------------------------------------------------------
155
+
156
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
157
+ Wrapped_Function * wrap_function(
158
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T),
159
+ Data_Object<Exception_Handler> handler,
160
+ Arguments* arguments)
161
+ {
162
+ typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T);
163
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler, arguments);
164
+ }
165
+
166
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
167
+ Wrapped_Function * wrap_function(
168
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T),
169
+ Data_Object<Exception_Handler> handler,
170
+ Arguments* arguments)
171
+ {
172
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T);
173
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>(func, handler, arguments);
174
+ }
175
+
176
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
177
+ Wrapped_Function * wrap_function(
178
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T) const,
179
+ Data_Object<Exception_Handler> handler,
180
+ Arguments* arguments)
181
+ {
182
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T) const;
183
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T>(func, handler, arguments);
184
+ }
185
+
186
+ // ---------------------------------------------------------------------
187
+
188
+ template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
189
+ Wrapped_Function * wrap_function(
190
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
191
+ Data_Object<Exception_Handler> handler,
192
+ Arguments* arguments)
193
+ {
194
+ typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T);
195
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler, arguments);
196
+ }
197
+
198
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
199
+ Wrapped_Function * wrap_function(
200
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T),
201
+ Data_Object<Exception_Handler> handler,
202
+ Arguments* arguments)
203
+ {
204
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T);
205
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler, arguments);
206
+ }
207
+
208
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
209
+ Wrapped_Function * wrap_function(
210
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T) const,
211
+ Data_Object<Exception_Handler> handler,
212
+ Arguments* arguments)
213
+ {
214
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T) const;
215
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T>(func, handler, arguments);
216
+ }
217
+
218
+ // ---------------------------------------------------------------------
219
+
220
+ 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>
221
+ Wrapped_Function * wrap_function(
222
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
223
+ Data_Object<Exception_Handler> handler,
224
+ Arguments* arguments)
225
+ {
226
+ typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T);
227
+ 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);
228
+ }
229
+
230
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
231
+ Wrapped_Function * wrap_function(
232
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
233
+ Data_Object<Exception_Handler> handler,
234
+ Arguments* arguments)
235
+ {
236
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T);
237
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler, arguments);
238
+ }
239
+
240
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
241
+ Wrapped_Function * wrap_function(
242
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T) const,
243
+ Data_Object<Exception_Handler> handler,
244
+ Arguments* arguments)
245
+ {
246
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T) const;
247
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T>(func, handler, arguments);
248
+ }
249
+
250
+ // ---------------------------------------------------------------------
251
+
252
+ 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>
253
+ Wrapped_Function * wrap_function(
254
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
255
+ Data_Object<Exception_Handler> handler,
256
+ Arguments* arguments)
257
+ {
258
+ typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T);
259
+ 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);
260
+ }
261
+
262
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
263
+ Wrapped_Function * wrap_function(
264
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
265
+ Data_Object<Exception_Handler> handler,
266
+ Arguments* arguments)
267
+ {
268
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T);
269
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler, arguments);
270
+ }
271
+
272
+ template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
273
+ Wrapped_Function * wrap_function(
274
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T) const,
275
+ Data_Object<Exception_Handler> handler,
276
+ Arguments* arguments)
277
+ {
278
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T) const;
279
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T>(func, handler, arguments);
280
+ }
281
+
282
+ // ---------------------------------------------------------------------
283
+
284
+ 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>
285
+ Wrapped_Function * wrap_function(
286
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
287
+ Data_Object<Exception_Handler> handler,
288
+ Arguments* arguments)
289
+ {
290
+ typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T);
291
+ 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);
292
+ }
293
+
294
+ template<typename Ret_T, typename Self_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>
295
+ Wrapped_Function * wrap_function(
296
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
297
+ Data_Object<Exception_Handler> handler,
298
+ Arguments* arguments)
299
+ {
300
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T);
301
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler, arguments);
302
+ }
303
+
304
+ template<typename Ret_T, typename Self_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>
305
+ Wrapped_Function * wrap_function(
306
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T) const,
307
+ Data_Object<Exception_Handler> handler,
308
+ Arguments* arguments)
309
+ {
310
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T) const;
311
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T>(func, handler, arguments);
312
+ }
313
+
314
+ // ---------------------------------------------------------------------
315
+
316
+ 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>
317
+ Wrapped_Function * wrap_function(
318
+ Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
319
+ Data_Object<Exception_Handler> handler,
320
+ Arguments* arguments)
321
+ {
322
+ typedef Ret_T (*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T);
323
+ 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);
324
+ }
325
+
326
+ template<typename Ret_T, typename Self_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>
327
+ Wrapped_Function * wrap_function(
328
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
329
+ Data_Object<Exception_Handler> handler,
330
+ Arguments* arguments)
331
+ {
332
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T);
333
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler, arguments);
334
+ }
335
+
336
+ template<typename Ret_T, typename Self_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>
337
+ Wrapped_Function * wrap_function(
338
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T) const,
339
+ Data_Object<Exception_Handler> handler,
340
+ Arguments* arguments)
341
+ {
342
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T) const;
343
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T>(func, handler, arguments);
344
+ }
345
+
346
+ // ---------------------------------------------------------------------
347
+
348
+ 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>
349
+ Wrapped_Function * wrap_function(
350
+ 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),
351
+ Data_Object<Exception_Handler> handler,
352
+ Arguments* arguments)
353
+ {
354
+ 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);
355
+ 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);
356
+ }
357
+
358
+ template<typename Ret_T, typename Self_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>
359
+ Wrapped_Function * wrap_function(
360
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
361
+ Data_Object<Exception_Handler> handler,
362
+ Arguments* arguments)
363
+ {
364
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T);
365
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler, arguments);
366
+ }
367
+
368
+ template<typename Ret_T, typename Self_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>
369
+ Wrapped_Function * wrap_function(
370
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T) const,
371
+ Data_Object<Exception_Handler> handler,
372
+ Arguments* arguments)
373
+ {
374
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T) const;
375
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T>(func, handler, arguments);
376
+ }
377
+
378
+ // ---------------------------------------------------------------------
379
+
380
+ 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>
381
+ Wrapped_Function * wrap_function(
382
+ 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),
383
+ Data_Object<Exception_Handler> handler,
384
+ Arguments* arguments)
385
+ {
386
+ 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);
387
+ 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);
388
+ }
389
+
390
+ template<typename Ret_T, typename Self_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>
391
+ Wrapped_Function * wrap_function(
392
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T),
393
+ Data_Object<Exception_Handler> handler,
394
+ Arguments* arguments)
395
+ {
396
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T);
397
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_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);
398
+ }
399
+
400
+ template<typename Ret_T, typename Self_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>
401
+ Wrapped_Function * wrap_function(
402
+ Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T) const,
403
+ Data_Object<Exception_Handler> handler,
404
+ Arguments* arguments)
405
+ {
406
+ typedef Ret_T (Self_T::*Func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T) const;
407
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_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);
408
+ }
409
+
410
+ // ---------------------------------------------------------------------
411
+
412
+ 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>
413
+ Wrapped_Function * wrap_function(
414
+ 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),
415
+ Data_Object<Exception_Handler> handler,
416
+ Arguments* arguments)
417
+ {
418
+ 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);
419
+ 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);
420
+ }
421
+
422
+ template<typename Ret_T, typename Self_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>
423
+ Wrapped_Function * wrap_function(
424
+ Ret_T (Self_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),
425
+ Data_Object<Exception_Handler> handler,
426
+ Arguments* arguments)
427
+ {
428
+ typedef Ret_T (Self_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);
429
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_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);
430
+ }
431
+
432
+ template<typename Ret_T, typename Self_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>
433
+ Wrapped_Function * wrap_function(
434
+ Ret_T (Self_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) const,
435
+ Data_Object<Exception_Handler> handler,
436
+ Arguments* arguments)
437
+ {
438
+ typedef Ret_T (Self_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) const;
439
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_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);
440
+ }
441
+
442
+ // ---------------------------------------------------------------------
443
+
444
+ 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>
445
+ Wrapped_Function * wrap_function(
446
+ 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),
447
+ Data_Object<Exception_Handler> handler,
448
+ Arguments* arguments)
449
+ {
450
+ 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);
451
+ 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);
452
+ }
453
+
454
+ template<typename Ret_T, typename Self_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>
455
+ Wrapped_Function * wrap_function(
456
+ Ret_T (Self_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),
457
+ Data_Object<Exception_Handler> handler,
458
+ Arguments* arguments)
459
+ {
460
+ typedef Ret_T (Self_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);
461
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_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);
462
+ }
463
+
464
+ template<typename Ret_T, typename Self_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>
465
+ Wrapped_Function * wrap_function(
466
+ Ret_T (Self_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) const,
467
+ Data_Object<Exception_Handler> handler,
468
+ Arguments* arguments)
469
+ {
470
+ typedef Ret_T (Self_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) const;
471
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_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);
472
+ }
473
+
474
+ // ---------------------------------------------------------------------
475
+
476
+ 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>
477
+ Wrapped_Function * wrap_function(
478
+ 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),
479
+ Data_Object<Exception_Handler> handler,
480
+ Arguments* arguments)
481
+ {
482
+ 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);
483
+ 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);
484
+ }
485
+
486
+ template<typename Ret_T, typename Self_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>
487
+ Wrapped_Function * wrap_function(
488
+ Ret_T (Self_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),
489
+ Data_Object<Exception_Handler> handler,
490
+ Arguments* arguments)
491
+ {
492
+ typedef Ret_T (Self_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);
493
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_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);
494
+ }
495
+
496
+ template<typename Ret_T, typename Self_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>
497
+ Wrapped_Function * wrap_function(
498
+ Ret_T (Self_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) const,
499
+ Data_Object<Exception_Handler> handler,
500
+ Arguments* arguments)
501
+ {
502
+ typedef Ret_T (Self_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) const;
503
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_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);
504
+ }
505
+
506
+ // ---------------------------------------------------------------------
507
+
508
+ } // namespace detail
509
+
510
+ } // namespace Rice
511
+
512
+
513
+ #endif // Rice__detail__wrap_function__ipp_
514
+
@@ -0,0 +1,33 @@
1
+ #ifndef Rice__global_function__hpp_
2
+ #define Rice__global_function__hpp_
3
+
4
+ #include "Arg.hpp"
5
+
6
+ namespace Rice
7
+ {
8
+
9
+ /**
10
+ * Helper forwarder method to easily wrap
11
+ * globally available functions. This simply
12
+ * forwards off a call to define_module_function
13
+ * on rb_mKernel
14
+ */
15
+ template<typename Func_T>
16
+ void define_global_function(
17
+ char const * name,
18
+ Func_T func,
19
+ Arguments* arguments = 0);
20
+
21
+ // FIXME: See Module::define_method with Arg
22
+ template<typename Func_T>
23
+ void define_global_function(
24
+ char const * name,
25
+ Func_T func,
26
+ Arg const& arg);
27
+
28
+
29
+ } // Rice
30
+
31
+ #include "global_function.ipp"
32
+
33
+ #endif // Rice__global_function__hpp_
@@ -0,0 +1,22 @@
1
+ #include "detail/define_method_and_auto_wrap.hpp"
2
+
3
+ template<typename Func_T>
4
+ void Rice::define_global_function(
5
+ char const * name,
6
+ Func_T func,
7
+ Arguments* arguments)
8
+ {
9
+ Module(rb_mKernel).define_module_function(name, func, arguments);
10
+ }
11
+
12
+ template<typename Func_T>
13
+ void Rice::define_global_function(
14
+ char const * name,
15
+ Func_T func,
16
+ Arg const& arg)
17
+ {
18
+ Arguments* args = new Arguments();
19
+ args->add(arg);
20
+ define_global_function(name, func, args);
21
+ }
22
+
data/rice/protect.hpp ADDED
@@ -0,0 +1,91 @@
1
+ #ifndef Rice__protect__hpp_
2
+ #define Rice__protect__hpp_
3
+
4
+ // This is a generated file. DO NOT EDIT!!
5
+
6
+
7
+ // This causes problems with certain C++ libraries
8
+ #undef TYPE
9
+
10
+ #include "Object_defn.hpp"
11
+ namespace Rice
12
+ {
13
+
14
+ #ifdef DOXYGEN
15
+ /*! \file
16
+ * \brief A collection of functions (overloaded on number of
17
+ * arguments) for calling C functions that might raise Ruby exceptions.
18
+ */
19
+
20
+ //! Call the C function f with arguments (arg1, arg2, ...).
21
+ /*! E.g.:
22
+ * \code
23
+ * VALUE x = protect(rb_ary_new);
24
+ * protect(rb_ary_push, x, INT2NUM(42));
25
+ * \endcode
26
+ *
27
+ * Note that this function makes copies of all of its arguments; it
28
+ * does not take anything by reference. All of the copies are const so
29
+ * that protect will not work if f takes a non-const
30
+ * reference to any of its arguments (though you can use non-const
31
+ * pointers).
32
+ */
33
+ VALUE protect(Function f, T1 arg1, T2 arg2, ...);
34
+ #else
35
+
36
+ template<typename Fun>
37
+ VALUE protect(Fun fun);
38
+
39
+ template<typename Fun, typename T0>
40
+ VALUE protect(Fun fun, T0 const & t0);
41
+
42
+ template<typename Fun, typename T0, typename T1>
43
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1);
44
+
45
+ template<typename Fun, typename T0, typename T1, typename T2>
46
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2);
47
+
48
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3>
49
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3);
50
+
51
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4>
52
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4);
53
+
54
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
55
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5);
56
+
57
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
58
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5, T6 const & t6);
59
+
60
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
61
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5, T6 const & t6, T7 const & t7);
62
+
63
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
64
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5, T6 const & t6, T7 const & t7, T8 const & t8);
65
+
66
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
67
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5, T6 const & t6, T7 const & t7, T8 const & t8, T9 const & t9);
68
+
69
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
70
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5, T6 const & t6, T7 const & t7, T8 const & t8, T9 const & t9, T10 const & t10);
71
+
72
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
73
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5, T6 const & t6, T7 const & t7, T8 const & t8, T9 const & t9, T10 const & t10, T11 const & t11);
74
+
75
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
76
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5, T6 const & t6, T7 const & t7, T8 const & t8, T9 const & t9, T10 const & t10, T11 const & t11, T12 const & t12);
77
+
78
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
79
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5, T6 const & t6, T7 const & t7, T8 const & t8, T9 const & t9, T10 const & t10, T11 const & t11, T12 const & t12, T13 const & t13);
80
+
81
+ template<typename Fun, typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
82
+ VALUE protect(Fun fun, T0 const & t0, T1 const & t1, T2 const & t2, T3 const & t3, T4 const & t4, T5 const & t5, T6 const & t6, T7 const & t7, T8 const & t8, T9 const & t9, T10 const & t10, T11 const & t11, T12 const & t12, T13 const & t13, T14 const & t14);
83
+
84
+ #endif // DOXYGEN
85
+
86
+ } // namespace Rice
87
+
88
+ #include "protect.ipp"
89
+
90
+ #endif // Rice__protect__hpp_
91
+