rice 2.1.1 → 4.0.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 (246) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +121 -0
  3. data/CONTRIBUTORS.md +19 -0
  4. data/COPYING +2 -2
  5. data/Gemfile +3 -0
  6. data/README.md +69 -0
  7. data/Rakefile +95 -12
  8. data/include/rice/rice.hpp +7766 -0
  9. data/lib/mkmf-rice.rb +127 -0
  10. data/lib/version.rb +3 -0
  11. data/rice/Address_Registration_Guard.ipp +75 -32
  12. data/rice/Address_Registration_Guard_defn.hpp +60 -56
  13. data/rice/Arg.hpp +80 -4
  14. data/rice/Arg.ipp +51 -0
  15. data/rice/Constructor.hpp +30 -376
  16. data/rice/Data_Object.ipp +234 -107
  17. data/rice/Data_Object_defn.hpp +77 -117
  18. data/rice/Data_Type.hpp +1 -2
  19. data/rice/Data_Type.ipp +251 -295
  20. data/rice/Data_Type_defn.hpp +175 -243
  21. data/rice/Director.hpp +14 -9
  22. data/rice/Enum.hpp +54 -104
  23. data/rice/Enum.ipp +104 -230
  24. data/rice/Exception.hpp +2 -8
  25. data/rice/Exception.ipp +65 -0
  26. data/rice/Exception_defn.hpp +46 -47
  27. data/rice/Identifier.hpp +28 -28
  28. data/rice/Identifier.ipp +23 -27
  29. data/rice/Return.hpp +39 -0
  30. data/rice/Return.ipp +33 -0
  31. data/rice/detail/Exception_Handler.ipp +22 -62
  32. data/rice/detail/Exception_Handler_defn.hpp +76 -91
  33. data/rice/detail/Iterator.hpp +18 -88
  34. data/rice/detail/Iterator.ipp +47 -0
  35. data/rice/detail/Jump_Tag.hpp +21 -0
  36. data/rice/detail/MethodInfo.hpp +44 -0
  37. data/rice/detail/MethodInfo.ipp +78 -0
  38. data/rice/detail/NativeAttribute.hpp +53 -0
  39. data/rice/detail/NativeAttribute.ipp +83 -0
  40. data/rice/detail/NativeFunction.hpp +69 -0
  41. data/rice/detail/NativeFunction.ipp +248 -0
  42. data/rice/detail/RubyFunction.hpp +39 -0
  43. data/rice/detail/RubyFunction.ipp +92 -0
  44. data/rice/detail/Type.hpp +29 -0
  45. data/rice/detail/Type.ipp +138 -0
  46. data/rice/detail/TypeRegistry.hpp +50 -0
  47. data/rice/detail/TypeRegistry.ipp +106 -0
  48. data/rice/detail/Wrapper.hpp +51 -0
  49. data/rice/detail/Wrapper.ipp +151 -0
  50. data/rice/detail/default_allocation_func.hpp +8 -19
  51. data/rice/detail/default_allocation_func.ipp +9 -8
  52. data/rice/detail/from_ruby.hpp +2 -37
  53. data/rice/detail/from_ruby.ipp +1020 -46
  54. data/rice/detail/from_ruby_defn.hpp +38 -0
  55. data/rice/detail/function_traits.hpp +124 -0
  56. data/rice/detail/method_data.hpp +23 -15
  57. data/rice/detail/method_data.ipp +53 -0
  58. data/rice/detail/rice_traits.hpp +116 -0
  59. data/rice/detail/ruby.hpp +9 -49
  60. data/rice/detail/to_ruby.hpp +3 -17
  61. data/rice/detail/to_ruby.ipp +409 -31
  62. data/rice/detail/to_ruby_defn.hpp +48 -0
  63. data/rice/forward_declares.ipp +82 -0
  64. data/rice/global_function.hpp +16 -20
  65. data/rice/global_function.ipp +8 -17
  66. data/rice/rice.hpp +59 -0
  67. data/rice/ruby_mark.hpp +5 -3
  68. data/rice/ruby_try_catch.hpp +4 -4
  69. data/rice/stl.hpp +11 -0
  70. data/sample/callbacks/extconf.rb +6 -0
  71. data/sample/callbacks/sample_callbacks.cpp +35 -0
  72. data/sample/callbacks/test.rb +28 -0
  73. data/sample/enum/extconf.rb +3 -0
  74. data/sample/enum/sample_enum.cpp +3 -17
  75. data/sample/enum/test.rb +2 -2
  76. data/sample/inheritance/animals.cpp +8 -24
  77. data/sample/inheritance/extconf.rb +3 -0
  78. data/sample/inheritance/test.rb +1 -1
  79. data/sample/map/extconf.rb +3 -0
  80. data/sample/map/map.cpp +10 -18
  81. data/sample/map/test.rb +1 -1
  82. data/test/embed_ruby.cpp +34 -0
  83. data/test/embed_ruby.hpp +4 -0
  84. data/test/ext/t1/extconf.rb +3 -0
  85. data/test/ext/t1/t1.cpp +1 -3
  86. data/test/ext/t2/extconf.rb +3 -0
  87. data/test/ext/t2/t2.cpp +1 -1
  88. data/test/extconf.rb +23 -0
  89. data/test/ruby/test_callbacks_sample.rb +28 -0
  90. data/test/ruby/test_multiple_extensions.rb +18 -0
  91. data/test/ruby/test_multiple_extensions_same_class.rb +14 -0
  92. data/test/ruby/test_multiple_extensions_with_inheritance.rb +20 -0
  93. data/test/test_Address_Registration_Guard.cpp +25 -11
  94. data/test/test_Array.cpp +131 -74
  95. data/test/test_Attribute.cpp +147 -0
  96. data/test/test_Builtin_Object.cpp +36 -15
  97. data/test/test_Class.cpp +151 -274
  98. data/test/test_Constructor.cpp +10 -9
  99. data/test/test_Data_Object.cpp +135 -193
  100. data/test/test_Data_Type.cpp +323 -252
  101. data/test/test_Director.cpp +56 -42
  102. data/test/test_Enum.cpp +230 -104
  103. data/test/test_Exception.cpp +7 -7
  104. data/test/test_Hash.cpp +33 -31
  105. data/test/test_Identifier.cpp +6 -6
  106. data/test/test_Inheritance.cpp +221 -0
  107. data/test/test_Iterator.cpp +161 -0
  108. data/test/test_Jump_Tag.cpp +1 -1
  109. data/test/test_Keep_Alive.cpp +161 -0
  110. data/test/test_Memory_Management.cpp +4 -5
  111. data/test/test_Module.cpp +169 -111
  112. data/test/test_Object.cpp +51 -19
  113. data/test/test_Ownership.cpp +275 -0
  114. data/test/test_Self.cpp +205 -0
  115. data/test/test_Stl_Optional.cpp +90 -0
  116. data/test/test_Stl_Pair.cpp +144 -0
  117. data/test/test_Stl_SmartPointer.cpp +200 -0
  118. data/test/test_Stl_String.cpp +74 -0
  119. data/test/test_Stl_Vector.cpp +652 -0
  120. data/test/test_String.cpp +3 -3
  121. data/test/test_Struct.cpp +31 -40
  122. data/test/test_Symbol.cpp +3 -3
  123. data/test/test_To_From_Ruby.cpp +283 -218
  124. data/test/test_global_functions.cpp +41 -20
  125. data/test/unittest.cpp +34 -8
  126. data/test/unittest.hpp +0 -4
  127. metadata +117 -137
  128. data/Doxyfile +0 -2280
  129. data/Makefile.am +0 -26
  130. data/Makefile.in +0 -920
  131. data/README +0 -1055
  132. data/README.mingw +0 -8
  133. data/aclocal.m4 +0 -1088
  134. data/bootstrap +0 -8
  135. data/check_stdcxx_11.ac +0 -142
  136. data/config.guess +0 -1421
  137. data/config.sub +0 -1807
  138. data/configure +0 -7481
  139. data/configure.ac +0 -55
  140. data/depcomp +0 -791
  141. data/doxygen.ac +0 -314
  142. data/doxygen.am +0 -186
  143. data/extconf.rb +0 -69
  144. data/install-sh +0 -501
  145. data/missing +0 -215
  146. data/post-autoconf.rb +0 -22
  147. data/post-automake.rb +0 -28
  148. data/rice/Address_Registration_Guard.cpp +0 -22
  149. data/rice/Arg_impl.hpp +0 -129
  150. data/rice/Arg_operators.cpp +0 -21
  151. data/rice/Arg_operators.hpp +0 -19
  152. data/rice/Array.hpp +0 -214
  153. data/rice/Array.ipp +0 -256
  154. data/rice/Builtin_Object.hpp +0 -8
  155. data/rice/Builtin_Object.ipp +0 -50
  156. data/rice/Builtin_Object_defn.hpp +0 -50
  157. data/rice/Class.cpp +0 -57
  158. data/rice/Class.hpp +0 -8
  159. data/rice/Class.ipp +0 -6
  160. data/rice/Class_defn.hpp +0 -83
  161. data/rice/Data_Type.cpp +0 -54
  162. data/rice/Data_Type_fwd.hpp +0 -12
  163. data/rice/Director.cpp +0 -13
  164. data/rice/Exception.cpp +0 -59
  165. data/rice/Exception_Base.hpp +0 -8
  166. data/rice/Exception_Base.ipp +0 -13
  167. data/rice/Exception_Base_defn.hpp +0 -27
  168. data/rice/Hash.hpp +0 -227
  169. data/rice/Hash.ipp +0 -329
  170. data/rice/Identifier.cpp +0 -8
  171. data/rice/Jump_Tag.hpp +0 -24
  172. data/rice/Makefile.am +0 -124
  173. data/rice/Makefile.in +0 -839
  174. data/rice/Module.cpp +0 -84
  175. data/rice/Module.hpp +0 -8
  176. data/rice/Module.ipp +0 -6
  177. data/rice/Module_defn.hpp +0 -88
  178. data/rice/Module_impl.hpp +0 -281
  179. data/rice/Module_impl.ipp +0 -345
  180. data/rice/Object.cpp +0 -169
  181. data/rice/Object.hpp +0 -8
  182. data/rice/Object.ipp +0 -19
  183. data/rice/Object_defn.hpp +0 -191
  184. data/rice/Require_Guard.hpp +0 -21
  185. data/rice/String.cpp +0 -94
  186. data/rice/String.hpp +0 -91
  187. data/rice/Struct.cpp +0 -117
  188. data/rice/Struct.hpp +0 -162
  189. data/rice/Struct.ipp +0 -26
  190. data/rice/Symbol.cpp +0 -25
  191. data/rice/Symbol.hpp +0 -66
  192. data/rice/Symbol.ipp +0 -44
  193. data/rice/config.hpp +0 -47
  194. data/rice/config.hpp.in +0 -46
  195. data/rice/detail/Arguments.hpp +0 -118
  196. data/rice/detail/Auto_Function_Wrapper.hpp +0 -898
  197. data/rice/detail/Auto_Function_Wrapper.ipp +0 -3694
  198. data/rice/detail/Auto_Member_Function_Wrapper.hpp +0 -897
  199. data/rice/detail/Auto_Member_Function_Wrapper.ipp +0 -2774
  200. data/rice/detail/Caster.hpp +0 -103
  201. data/rice/detail/Not_Copyable.hpp +0 -25
  202. data/rice/detail/Wrapped_Function.hpp +0 -33
  203. data/rice/detail/cfp.hpp +0 -24
  204. data/rice/detail/cfp.ipp +0 -51
  205. data/rice/detail/check_ruby_type.cpp +0 -27
  206. data/rice/detail/check_ruby_type.hpp +0 -23
  207. data/rice/detail/creation_funcs.hpp +0 -37
  208. data/rice/detail/creation_funcs.ipp +0 -36
  209. data/rice/detail/define_method_and_auto_wrap.hpp +0 -31
  210. data/rice/detail/define_method_and_auto_wrap.ipp +0 -30
  211. data/rice/detail/demangle.cpp +0 -56
  212. data/rice/detail/demangle.hpp +0 -19
  213. data/rice/detail/env.hpp +0 -11
  214. data/rice/detail/method_data.cpp +0 -86
  215. data/rice/detail/node.hpp +0 -13
  216. data/rice/detail/object_call.hpp +0 -69
  217. data/rice/detail/object_call.ipp +0 -131
  218. data/rice/detail/protect.cpp +0 -29
  219. data/rice/detail/protect.hpp +0 -34
  220. data/rice/detail/ruby_version_code.hpp +0 -6
  221. data/rice/detail/ruby_version_code.hpp.in +0 -6
  222. data/rice/detail/st.hpp +0 -22
  223. data/rice/detail/traits.hpp +0 -43
  224. data/rice/detail/win32.hpp +0 -16
  225. data/rice/detail/wrap_function.hpp +0 -341
  226. data/rice/detail/wrap_function.ipp +0 -514
  227. data/rice/protect.hpp +0 -92
  228. data/rice/protect.ipp +0 -1134
  229. data/rice/rubypp.rb +0 -97
  230. data/rice/to_from_ruby.hpp +0 -8
  231. data/rice/to_from_ruby.ipp +0 -294
  232. data/rice/to_from_ruby_defn.hpp +0 -70
  233. data/ruby.ac +0 -135
  234. data/ruby/Makefile.am +0 -1
  235. data/ruby/Makefile.in +0 -625
  236. data/ruby/lib/Makefile.am +0 -3
  237. data/ruby/lib/Makefile.in +0 -503
  238. data/ruby/lib/mkmf-rice.rb.in +0 -217
  239. data/ruby/lib/version.rb +0 -3
  240. data/sample/Makefile.am +0 -47
  241. data/sample/Makefile.in +0 -486
  242. data/test/Makefile.am +0 -72
  243. data/test/Makefile.in +0 -1150
  244. data/test/ext/Makefile.am +0 -41
  245. data/test/ext/Makefile.in +0 -480
  246. data/test/test_rice.rb +0 -41
data/rice/Arg.ipp ADDED
@@ -0,0 +1,51 @@
1
+ namespace Rice
2
+ {
3
+ inline Arg::Arg(std::string name) : name(name)
4
+ {
5
+ }
6
+
7
+ template<typename Arg_Type>
8
+ inline Arg& Arg::operator=(Arg_Type val)
9
+ {
10
+ this->defaultValue_ = val;
11
+ return *this;
12
+ }
13
+
14
+ //! Check if this Arg has a default value associated with it
15
+ inline bool Arg::hasDefaultValue() const
16
+ {
17
+ return this->defaultValue_.has_value();
18
+ }
19
+
20
+ //! Return a reference to the default value associated with this Arg
21
+ /*! \return the type saved to this Arg
22
+ */
23
+ template<typename Arg_Type>
24
+ inline Arg_Type& Arg::defaultValue()
25
+ {
26
+ return std::any_cast<Arg_Type&>(this->defaultValue_);
27
+ }
28
+
29
+ inline Arg& Arg::keepAlive()
30
+ {
31
+ this->isKeepAlive = true;
32
+ return *this;
33
+ }
34
+
35
+ inline Arg& Arg::isValue()
36
+ {
37
+ isValue_ = true;
38
+ return *this;
39
+ }
40
+
41
+ inline bool Arg::getIsValue()
42
+ {
43
+ return isValue_;
44
+ }
45
+
46
+ // Function to overload the, operator
47
+ inline Arg Arg::operator,(const Arg& other)
48
+ {
49
+ throw std::runtime_error("The Arg class no longer supports the comma operator, please remove the surounding parentheses");
50
+ }
51
+ } // Rice
data/rice/Constructor.hpp CHANGED
@@ -1,391 +1,45 @@
1
1
  #ifndef Rice__Constructor__hpp_
2
2
  #define Rice__Constructor__hpp_
3
3
 
4
- // This is a generated file. DO NOT EDIT!!
4
+ #include "detail/Wrapper.hpp"
5
+ #include "cpp_api/Object_defn.hpp"
5
6
 
6
-
7
- // This causes problems with certain C++ libraries
8
- #undef TYPE
9
-
10
- #include "to_from_ruby_defn.hpp"
11
- #include "detail/method_data.hpp"
12
7
  namespace Rice
13
8
  {
14
- #ifdef DOXYGEN
15
- //! Define a Type's Constructor and it's arguments.
16
- /*! E.g. for the default constructor on a Type:
17
- \code
18
- define_class<Test>()
19
- .define_constructor(Constructor<Test>());
20
- \endcode
21
- *
22
- * The first template type must be the type being wrapped.
23
- * Afterwards any extra types must match the appropriate constructor
24
- * to be used in C++ when constructing the object.
25
- *
26
- * For more information, see Rice::Data_Type::define_constructor.
27
- */
28
- template<typename T, typename ArgTypes, ...>
29
- class Constructor
30
- {
31
- };
32
-
33
- #else
34
-
35
- 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>
9
+ //! Define a Type's Constructor and it's arguments.
10
+ /*! E.g. for the default constructor on a Type:
11
+ \code
12
+ define_class<Test>()
13
+ .define_constructor(Constructor<Test>());
14
+ \endcode
15
+ *
16
+ * The first template type must be the type being wrapped.
17
+ * Afterwards any extra types must match the appropriate constructor
18
+ * to be used in C++ when constructing the object.
19
+ *
20
+ * For more information, see Rice::Data_Type::define_constructor.
21
+ */
22
+ template<typename T, typename...Arg_Ts>
36
23
  class Constructor
37
24
  {
38
- private:
39
- Constructor()
40
- {
41
- }
42
- };
43
-
44
- template<typename T>
45
- class Constructor<T, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
46
- {
47
25
  public:
48
- static void construct(Object self)
26
+ static void construct(VALUE self, Arg_Ts...args)
49
27
  {
50
- DATA_PTR(self.value()) = new T();
28
+ T* data = new T(args...);
29
+ detail::replace<T>(self, Data_Type<T>::rb_type(), data, true);
51
30
  }
52
31
  };
53
32
 
54
-
55
- template<typename T>
56
- class Constructor<T, Object, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
33
+ //! Special-case Constructor used when defining Directors.
34
+ template<typename T, typename...Arg_Ts>
35
+ class Constructor<T, Object, Arg_Ts...>
57
36
  {
58
- public:
59
- static void construct(Object self)
60
- {
61
- DATA_PTR(self.value()) = new T(self);
62
- }
37
+ public:
38
+ static void construct(Object self, Arg_Ts...args)
39
+ {
40
+ T* data = new T(self, args...);
41
+ detail::replace<T>(self.value(), Data_Type<T>::rb_type(), data, true);
42
+ }
63
43
  };
64
-
65
-
66
- template<typename T, typename Arg0_T>
67
- class Constructor<T, Arg0_T, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
68
- {
69
- public:
70
- static void construct(Object self, Arg0_T arg0)
71
- {
72
- DATA_PTR(self.value()) = new T(arg0);
73
- }
74
- };
75
-
76
-
77
- template<typename T, typename Arg0_T, typename Arg1_T>
78
- class Constructor<T, Arg0_T, Arg1_T, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
79
- {
80
- public:
81
- static void construct(Object self, Arg0_T arg0, Arg1_T arg1)
82
- {
83
- DATA_PTR(self.value()) = new T(arg0, arg1);
84
- }
85
- };
86
-
87
-
88
- template<typename T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
89
- class Constructor<T, Arg0_T, Arg1_T, Arg2_T, void, void, void, void, void, void, void, void, void, void, void, void, void>
90
- {
91
- public:
92
- static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2)
93
- {
94
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2);
95
- }
96
- };
97
-
98
-
99
- template<typename T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
100
- class Constructor<T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, void, void, void, void, void, void, void, void, void, void, void, void>
101
- {
102
- public:
103
- static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3)
104
- {
105
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3);
106
- }
107
- };
108
-
109
-
110
- template<typename T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
111
- class Constructor<T, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, void, void, void, void, void, void, void, void, void, void, void>
112
- {
113
- public:
114
- static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4)
115
- {
116
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4);
117
- }
118
- };
119
-
120
-
121
- template<typename T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
122
- 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>
123
- {
124
- public:
125
- static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5)
126
- {
127
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4, arg5);
128
- }
129
- };
130
-
131
-
132
- template<typename T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
133
- 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>
134
- {
135
- public:
136
- 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)
137
- {
138
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6);
139
- }
140
- };
141
-
142
-
143
- 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>
144
- 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>
145
- {
146
- public:
147
- 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)
148
- {
149
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
150
- }
151
- };
152
-
153
-
154
- 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>
155
- 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>
156
- {
157
- public:
158
- 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)
159
- {
160
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
161
- }
162
- };
163
-
164
-
165
- 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>
166
- 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>
167
- {
168
- public:
169
- 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)
170
- {
171
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
172
- }
173
- };
174
-
175
-
176
- 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>
177
- 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>
178
- {
179
- public:
180
- 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)
181
- {
182
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
183
- }
184
- };
185
-
186
-
187
- 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>
188
- 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>
189
- {
190
- public:
191
- 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)
192
- {
193
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
194
- }
195
- };
196
-
197
-
198
- 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>
199
- 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>
200
- {
201
- public:
202
- 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)
203
- {
204
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
205
- }
206
- };
207
-
208
-
209
- 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>
210
- 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>
211
- {
212
- public:
213
- 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)
214
- {
215
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
216
- }
217
- };
218
-
219
-
220
- 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>
221
- 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>
222
- {
223
- public:
224
- 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)
225
- {
226
- DATA_PTR(self.value()) = new T(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
227
- }
228
- };
229
-
230
-
231
- template<typename T, typename Arg0_T>
232
- class Constructor<T, Object, Arg0_T, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
233
- {
234
- public:
235
- static void construct(Object self, Arg0_T arg0)
236
- {
237
- DATA_PTR(self.value()) = new T(self, arg0);
238
- }
239
- };
240
-
241
-
242
- template<typename T, typename Arg0_T, typename Arg1_T>
243
- class Constructor<T, Object, Arg0_T, Arg1_T, void, void, void, void, void, void, void, void, void, void, void, void, void>
244
- {
245
- public:
246
- static void construct(Object self, Arg0_T arg0, Arg1_T arg1)
247
- {
248
- DATA_PTR(self.value()) = new T(self, arg0, arg1);
249
- }
250
- };
251
-
252
-
253
- template<typename T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
254
- class Constructor<T, Object, Arg0_T, Arg1_T, Arg2_T, void, void, void, void, void, void, void, void, void, void, void, void>
255
- {
256
- public:
257
- static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2)
258
- {
259
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2);
260
- }
261
- };
262
-
263
-
264
- template<typename T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
265
- class Constructor<T, Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, void, void, void, void, void, void, void, void, void, void, void>
266
- {
267
- public:
268
- static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3)
269
- {
270
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3);
271
- }
272
- };
273
-
274
-
275
- template<typename T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
276
- class Constructor<T, Object, Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, void, void, void, void, void, void, void, void, void, void>
277
- {
278
- public:
279
- static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4)
280
- {
281
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4);
282
- }
283
- };
284
-
285
-
286
- template<typename T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
287
- 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>
288
- {
289
- public:
290
- static void construct(Object self, Arg0_T arg0, Arg1_T arg1, Arg2_T arg2, Arg3_T arg3, Arg4_T arg4, Arg5_T arg5)
291
- {
292
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5);
293
- }
294
- };
295
-
296
-
297
- template<typename T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
298
- 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>
299
- {
300
- public:
301
- 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)
302
- {
303
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
304
- }
305
- };
306
-
307
-
308
- 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>
309
- 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>
310
- {
311
- public:
312
- 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)
313
- {
314
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
315
- }
316
- };
317
-
318
-
319
- 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>
320
- 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>
321
- {
322
- public:
323
- 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)
324
- {
325
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
326
- }
327
- };
328
-
329
-
330
- 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>
331
- 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>
332
- {
333
- public:
334
- 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)
335
- {
336
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
337
- }
338
- };
339
-
340
-
341
- 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>
342
- 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>
343
- {
344
- public:
345
- 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)
346
- {
347
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
348
- }
349
- };
350
-
351
-
352
- 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>
353
- 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>
354
- {
355
- public:
356
- 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)
357
- {
358
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
359
- }
360
- };
361
-
362
-
363
- 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>
364
- 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>
365
- {
366
- public:
367
- 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)
368
- {
369
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
370
- }
371
- };
372
-
373
-
374
- 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>
375
- 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>
376
- {
377
- public:
378
- 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)
379
- {
380
- DATA_PTR(self.value()) = new T(self, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
381
- }
382
- };
383
-
384
-
385
- #endif // DOXYGEN
386
-
387
- } // namespace Rice
388
-
389
-
390
- #endif // Rice__Constructor__hpp_
391
-
44
+ }
45
+ #endif // Rice__Constructor__hpp_