1 #ifndef Rice__Constructor__hpp_
2 #define Rice__Constructor__hpp_
10 #include "to_from_ruby_defn.hpp"
11 #include "detail/method_data.hpp"
14 template<
typename T,
typename Arg0_T=
void,
typename Arg1_T=
void,
typename Arg2_T=
void,
typename Arg3_T=
void,
typename Arg4_T=
void,
typename Arg5_T=
void,
typename Arg6_T=
void,
typename Arg7_T=
void,
typename Arg8_T=
void,
typename Arg9_T=
void,
typename Arg10_T=
void,
typename Arg11_T=
void,
typename Arg12_T=
void,
typename Arg13_T=
void,
typename Arg14_T=
void,
typename Arg15_T=
void>
24 class Constructor<T, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
27 static void construct(
Object self)
29 DATA_PTR(
self.value()) =
new T();
35 class Constructor<T,
Object, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
38 static void construct(
Object self)
40 DATA_PTR(
self.value()) =
new T(
self);
45 template<
typename T,
typename Arg0_T>
46 class Constructor<T, Arg0_T, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
49 static void construct(
Object self, Arg0_T arg0)
51 DATA_PTR(
self.value()) =
new T(arg0);
56 template<
typename T,
typename Arg0_T,
typename Arg1_T>
57 class Constructor<T, Arg0_T, Arg1_T, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
60 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1)
62 DATA_PTR(
self.value()) =
new T(arg0, arg1);
67 template<
typename T,
typename Arg0_T,
typename Arg1_T,
typename Arg2_T>
68 class Constructor<T, Arg0_T, Arg1_T, Arg2_T, void, void, void, void, void, void, void, void, void, void, void, void, void>
71 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2)
73 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2);
78 template<
typename T,
typename Arg0_T,
typename Arg1_T,
typename Arg2_T,
typename Arg3_T>
79 class Constructor<T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, void, void, void, void, void, void, void, void, void, void, void, void>
82 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3)
84 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3);
89 template<
typename T,
typename Arg0_T,
typename Arg1_T,
typename Arg2_T,
typename Arg3_T,
typename Arg4_T>
90 class Constructor<T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, void, void, void, void, void, void, void, void, void, void, void>
93 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4)
95 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4);
100 template<
typename T,
typename Arg0_T,
typename Arg1_T,
typename Arg2_T,
typename Arg3_T,
typename Arg4_T,
typename Arg5_T>
101 class Constructor<T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, void, void, void, void, void, void, void, void, void, void>
104 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5)
106 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4, arg5);
111 template<
typename T,
typename Arg0_T,
typename Arg1_T,
typename Arg2_T,
typename Arg3_T,
typename Arg4_T,
typename Arg5_T,
typename Arg6_T>
112 class Constructor<T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, void, void, void, void, void, void, void, void, void>
115 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6)
117 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
122 template<
typename 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>
123 class Constructor<T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, void, void, void, void, void, void, void, void>
126 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7)
128 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
133 template<
typename 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>
134 class Constructor<T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, void, void, void, void, void, void, void>
137 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8)
139 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
144 template<
typename 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>
145 class Constructor<T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, void, void, void, void, void, void>
148 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9)
150 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
155 template<
typename 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>
156 class Constructor<T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, void, void, void, void, void>
159 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9, Arg10_T arg10)
161 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
166 template<
typename 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>
167 class Constructor<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, void, void, void, void>
170 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9, Arg10_T arg10, Arg11_T arg11)
172 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
177 template<
typename 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>
178 class Constructor<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, void, void, void>
181 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9, Arg10_T arg10, Arg11_T arg11, Arg12_T arg12)
183 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
188 template<
typename 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>
189 class Constructor<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, void, void>
192 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9, Arg10_T arg10, Arg11_T arg11, Arg12_T arg12, Arg13_T arg13)
194 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
199 template<
typename 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>
200 class Constructor<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, void>
203 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9, Arg10_T arg10, Arg11_T arg11, Arg12_T arg12, Arg13_T arg13, Arg14_T arg14)
205 DATA_PTR(
self.value()) =
new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
210 template<
typename T,
typename Arg0_T>
211 class Constructor<T,
Object, Arg0_T, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
214 static void construct(
Object self, Arg0_T arg0)
216 DATA_PTR(
self.value()) =
new T(
self, arg0);
221 template<
typename T,
typename Arg0_T,
typename Arg1_T>
222 class Constructor<T,
Object, Arg0_T, Arg1_T, void, void, void, void, void, void, void, void, void, void, void, void, void>
225 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1)
227 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1);
232 template<
typename T,
typename Arg0_T,
typename Arg1_T,
typename Arg2_T>
233 class Constructor<T,
Object, Arg0_T, Arg1_T, Arg2_T, void, void, void, void, void, void, void, void, void, void, void, void>
236 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2)
238 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2);
243 template<
typename T,
typename Arg0_T,
typename Arg1_T,
typename Arg2_T,
typename Arg3_T>
244 class Constructor<T,
Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, void, void, void, void, void, void, void, void, void, void, void>
247 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3)
249 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3);
254 template<
typename T,
typename Arg0_T,
typename Arg1_T,
typename Arg2_T,
typename Arg3_T,
typename Arg4_T>
255 class Constructor<T,
Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, void, void, void, void, void, void, void, void, void, void>
258 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4)
260 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3, arg4);
265 template<
typename T,
typename Arg0_T,
typename Arg1_T,
typename Arg2_T,
typename Arg3_T,
typename Arg4_T,
typename Arg5_T>
266 class Constructor<T,
Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, void, void, void, void, void, void, void, void, void>
269 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5)
271 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3, arg4, arg5);
276 template<
typename T,
typename Arg0_T,
typename Arg1_T,
typename Arg2_T,
typename Arg3_T,
typename Arg4_T,
typename Arg5_T,
typename Arg6_T>
277 class Constructor<T,
Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, void, void, void, void, void, void, void, void>
280 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6)
282 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
287 template<
typename 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>
288 class Constructor<T,
Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, void, void, void, void, void, void, void>
291 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7)
293 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
298 template<
typename 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>
299 class Constructor<T,
Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, void, void, void, void, void, void>
302 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8)
304 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
309 template<
typename 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>
310 class Constructor<T,
Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, void, void, void, void, void>
313 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9)
315 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
320 template<
typename 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>
321 class Constructor<T,
Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, void, void, void, void>
324 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9, Arg10_T arg10)
326 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
331 template<
typename 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>
332 class Constructor<T,
Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, void, void, void>
335 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9, Arg10_T arg10, Arg11_T arg11)
337 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
342 template<
typename 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>
343 class Constructor<T,
Object, 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, void, void>
346 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9, Arg10_T arg10, Arg11_T arg11, Arg12_T arg12)
348 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
353 template<
typename 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>
354 class Constructor<T,
Object, 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, void>
357 static void construct(
Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5, Arg6_T arg6, Arg7_T arg7, Arg8_T arg8, Arg9_T arg9, Arg10_T arg10, Arg11_T arg11, Arg12_T arg12, Arg13_T arg13)
359 DATA_PTR(
self.value()) =
new T(
self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
367 #endif // Rice__Constructor__hpp_