rice 2.1.0 → 3.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 (83) hide show
  1. checksums.yaml +5 -5
  2. data/COPYING +2 -2
  3. data/Doxyfile +4 -16
  4. data/Makefile.am +2 -2
  5. data/Makefile.in +28 -17
  6. data/{README → README.md} +323 -328
  7. data/aclocal.m4 +104 -107
  8. data/ax_cxx_compile_stdcxx.m4 +951 -0
  9. data/configure +549 -238
  10. data/configure.ac +3 -3
  11. data/extconf.rb +11 -10
  12. data/rice/Array.hpp +16 -16
  13. data/rice/Array.ipp +11 -11
  14. data/rice/Class_defn.hpp +1 -0
  15. data/rice/Constructor.hpp +27 -371
  16. data/rice/Data_Object_defn.hpp +3 -3
  17. data/rice/Director.hpp +3 -3
  18. data/rice/Enum.ipp +1 -1
  19. data/rice/Exception.cpp +2 -7
  20. data/rice/Hash.hpp +8 -5
  21. data/rice/Hash.ipp +2 -2
  22. data/rice/Makefile.am +1 -4
  23. data/rice/Makefile.in +80 -35
  24. data/rice/Module_impl.ipp +1 -1
  25. data/rice/Object.cpp +1 -1
  26. data/rice/Object.ipp +15 -1
  27. data/rice/Object_defn.hpp +24 -1
  28. data/rice/String.cpp +2 -7
  29. data/rice/Struct.cpp +2 -2
  30. data/rice/Struct.hpp +1 -1
  31. data/rice/Struct.ipp +1 -1
  32. data/rice/config.hpp +2 -2
  33. data/rice/config.hpp.in +2 -2
  34. data/rice/detail/Arguments.hpp +1 -1
  35. data/rice/detail/Auto_Function_Wrapper.ipp +512 -1025
  36. data/rice/detail/Auto_Member_Function_Wrapper.ipp +272 -545
  37. data/rice/detail/Iterator.hpp +2 -2
  38. data/rice/detail/method_data.cpp +8 -2
  39. data/rice/detail/ruby.hpp +1 -4
  40. data/rice/detail/ruby_version_code.hpp +1 -1
  41. data/rice/detail/wrap_function.hpp +32 -307
  42. data/rice/protect.hpp +3 -57
  43. data/rice/to_from_ruby.ipp +128 -4
  44. data/ruby/Makefile.in +11 -8
  45. data/ruby/lib/Makefile.in +10 -7
  46. data/ruby/lib/version.rb +1 -1
  47. data/sample/Makefile.am +10 -4
  48. data/sample/Makefile.in +20 -11
  49. data/sample/callbacks/extconf.rb +3 -0
  50. data/sample/callbacks/sample_callbacks.cpp +38 -0
  51. data/sample/callbacks/test.rb +28 -0
  52. data/test/Makefile.am +1 -0
  53. data/test/Makefile.in +118 -49
  54. data/test/embed_ruby.cpp +21 -0
  55. data/test/embed_ruby.hpp +4 -0
  56. data/test/ext/Makefile.in +10 -7
  57. data/test/test_Address_Registration_Guard.cpp +2 -1
  58. data/test/test_Array.cpp +2 -1
  59. data/test/test_Builtin_Object.cpp +2 -1
  60. data/test/test_Class.cpp +7 -4
  61. data/test/test_Data_Object.cpp +2 -1
  62. data/test/test_Data_Type.cpp +2 -1
  63. data/test/test_Director.cpp +2 -1
  64. data/test/test_Enum.cpp +24 -3
  65. data/test/test_Exception.cpp +2 -1
  66. data/test/test_Hash.cpp +2 -1
  67. data/test/test_Identifier.cpp +2 -1
  68. data/test/test_Memory_Management.cpp +2 -1
  69. data/test/test_Module.cpp +2 -1
  70. data/test/test_Object.cpp +13 -1
  71. data/test/test_String.cpp +2 -1
  72. data/test/test_Struct.cpp +2 -1
  73. data/test/test_Symbol.cpp +2 -1
  74. data/test/test_To_From_Ruby.cpp +102 -1
  75. data/test/test_global_functions.cpp +2 -1
  76. data/test/test_rice.rb +4 -0
  77. data/test/unittest.cpp +35 -9
  78. metadata +72 -16
  79. data/check_stdcxx_11.ac +0 -142
  80. data/rice/detail/object_call.hpp +0 -69
  81. data/rice/detail/object_call.ipp +0 -131
  82. data/rice/detail/traits.hpp +0 -43
  83. data/rice/detail/wrap_function.ipp +0 -514
@@ -21,8 +21,8 @@ else
21
21
  RICE_USING_MINGW32="false"
22
22
  fi
23
23
 
24
- m4_include(check_stdcxx_11.ac)
25
- AX_CXX_COMPILE_STDCXX_11(,optional)
24
+ m4_include(ax_cxx_compile_stdcxx.m4)
25
+ AX_CXX_COMPILE_STDCXX(14, noext, mandatory)
26
26
 
27
27
  AC_SUBST(RICE_USING_MINGW32)
28
28
 
@@ -40,7 +40,7 @@ DX_PDF_FEATURE(OFF)
40
40
  DX_PS_FEATURE(OFF)
41
41
  DX_INIT_DOXYGEN(rice, Doxyfile, doc)
42
42
 
43
- RICE_SAMPLES="enum map inheritance"
43
+ RICE_SAMPLES="enum map inheritance callbacks"
44
44
  AC_SUBST(RICE_SAMPLES)
45
45
 
46
46
  RICE_ROOT=`pwd`
data/extconf.rb CHANGED
@@ -23,18 +23,15 @@ if RbConfig::CONFIG["ENABLE_SHARED"] == "no"
23
23
  Unfortunately Rice does not build against a staticly linked Ruby.
24
24
  You'll need to rebuild Ruby with --enable-shared to use this library.
25
25
 
26
- If you're on rvm: rvm reinstall [version] -- --enable-shared
27
- If you're on rbenv: CONFIGURE_OPTS="--enable-shared" rbenv install [version]
28
-
29
- If you are using Heroku, they use a own custom configured, staticly linked Ruby
30
- for their stack and it unfortunately does not work with Rice. You will need to use
31
- a custom Ruby build pack that builds and uses a non-static version of Ruby.
26
+ If you're on rvm: rvm reinstall [version] -- --enable-shared
27
+ If you're on rbenv: CONFIGURE_OPTS="--enable-shared" rbenv install [version]
28
+ If you're on Heroku: upgrade your stack to heroku-16 or later
32
29
  EOC
33
30
  end
34
31
 
35
32
  if RUBY_PLATFORM =~ /darwin(\d+)/
36
- # TY Nokogiri!
37
- if !File.exist?('/usr/include/iconv.h')
33
+ check_iconv = 'echo "#include <iconv.h>" | g++ -xc -fsyntax-only -'
34
+ if !system(check_iconv)
38
35
  abort <<EOM.chomp
39
36
  -----
40
37
  The file "/usr/include/iconv.h" is missing in your build environment,
@@ -58,11 +55,15 @@ EOM
58
55
  end
59
56
 
60
57
  other_opts = "--disable-dependency-tracking"
61
- env = "ARCHFLAGS='-arch #{arch}' CPPFLAGS='-arch #{arch}'"
62
58
  else
63
59
  arch = `uname -p`.chomp
64
- env = "ARCHFLAGS='-arch #{arch}' CPPFLAGS='-arch #{arch}'"
65
60
  end
61
+
62
+ env = if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0')
63
+ "ARCHFLAGS='-arch #{arch}' CPPFLAGS='-fdeclspec -arch #{arch}'"
64
+ else
65
+ "ARCHFLAGS='-arch #{arch}' CPPFLAGS='-arch #{arch}'"
66
+ end
66
67
  end
67
68
 
68
69
  system "sh bootstrap"
@@ -46,12 +46,12 @@ public:
46
46
  //! Construct an Array from a C array.
47
47
  /*! \param a a C array of type T and size n.
48
48
  */
49
- template<typename T, size_t n>
49
+ template<typename T, long n>
50
50
  Array(T const (& a)[n]);
51
51
 
52
52
  public:
53
53
  //! Return the size of the array.
54
- size_t size() const;
54
+ long size() const;
55
55
 
56
56
  //! Return the element at the given index.
57
57
  /*! \param index The index of the desired element. The index may be
@@ -59,7 +59,7 @@ public:
59
59
  * index is out of bounds, this function has undefined behavior.
60
60
  * \return the element at the given index.
61
61
  */
62
- Object operator[](ptrdiff_t index) const;
62
+ Object operator[](long index) const;
63
63
 
64
64
  private:
65
65
  //! A helper class so array[index]=value can work.
@@ -72,7 +72,7 @@ public:
72
72
  * index is out of bounds, this function has undefined behavior.
73
73
  * \return the element at the given index.
74
74
  */
75
- Proxy operator[](ptrdiff_t index);
75
+ Proxy operator[](long index);
76
76
 
77
77
  //! Push an element onto the end of the array
78
78
  /*! \param v an object to push onto the array.
@@ -103,7 +103,7 @@ private:
103
103
  template<typename Array_Ref_T, typename Value_T>
104
104
  class Iterator;
105
105
 
106
- size_t position_of(ptrdiff_t index) const;
106
+ long position_of(long index) const;
107
107
 
108
108
  public:
109
109
  //! An iterator.
@@ -130,7 +130,7 @@ class Array::Proxy
130
130
  {
131
131
  public:
132
132
  //! Construct a new Proxy
133
- Proxy(Array array, size_t index);
133
+ Proxy(Array array, long index);
134
134
 
135
135
  //! Implicit conversion to Object.
136
136
  operator Object() const;
@@ -144,22 +144,22 @@ public:
144
144
 
145
145
  private:
146
146
  Array array_;
147
- size_t index_;
147
+ long index_;
148
148
  };
149
149
 
150
150
  //! A helper class for implementing iterators for a Array.
151
151
  // TODO: This really should be a random-access iterator.
152
152
  template<typename Array_Ref_T, typename Value_T>
153
153
  class Array::Iterator
154
- : public std::iterator<
155
- std::forward_iterator_tag,
156
- Value_T, // Type
157
- ptrdiff_t, // Distance type
158
- Object *, // Pointer type
159
- Value_T &> // Reference type
160
154
  {
161
155
  public:
162
- Iterator(Array_Ref_T array, size_t index);
156
+ using iterator_category = std::forward_iterator_tag;
157
+ using value_type = Value_T;
158
+ using difference_type = long;
159
+ using pointer = Object*;
160
+ using reference = Value_T&;
161
+
162
+ Iterator(Array_Ref_T array, long index);
163
163
 
164
164
  template<typename Array_Ref_T_, typename Value_T_>
165
165
  Iterator(Iterator<Array_Ref_T_, Value_T_> const & rhs);
@@ -183,11 +183,11 @@ public:
183
183
  // friend class Iterator;
184
184
 
185
185
  Array_Ref_T array() const;
186
- size_t index() const;
186
+ long index() const;
187
187
 
188
188
  private:
189
189
  Array_Ref_T array_;
190
- size_t index_;
190
+ long index_;
191
191
 
192
192
  Object tmp_;
193
193
  };
@@ -32,31 +32,31 @@ Array(Iter_T it, Iter_T end)
32
32
  }
33
33
  }
34
34
 
35
- template<typename T, size_t n>
35
+ template<typename T, long n>
36
36
  inline Rice::Array::
37
37
  Array(T const (& a)[n])
38
38
  : Builtin_Object<T_ARRAY>(protect(rb_ary_new))
39
39
  {
40
- for(size_t j = 0; j < n; ++j)
40
+ for(long j = 0; j < n; ++j)
41
41
  {
42
42
  push(a[j]);
43
43
  }
44
44
  }
45
45
 
46
- inline size_t Rice::Array::
46
+ inline long Rice::Array::
47
47
  size() const
48
48
  {
49
49
  return RARRAY_LEN(this->value());
50
50
  }
51
51
 
52
52
  inline Rice::Object Rice::Array::
53
- operator[](ptrdiff_t index) const
53
+ operator[](long index) const
54
54
  {
55
55
  return protect(rb_ary_entry, value(), position_of(index));
56
56
  }
57
57
 
58
58
  inline Rice::Array::Proxy Rice::Array::
59
- operator[](ptrdiff_t index)
59
+ operator[](long index)
60
60
  {
61
61
  return Proxy(*this, position_of(index));
62
62
  }
@@ -87,8 +87,8 @@ shift()
87
87
  return protect(rb_ary_shift, value());
88
88
  }
89
89
 
90
- inline size_t Rice::Array::
91
- position_of(ptrdiff_t index) const
90
+ inline long Rice::Array::
91
+ position_of(long index) const
92
92
  {
93
93
  if(index < 0)
94
94
  {
@@ -96,12 +96,12 @@ position_of(ptrdiff_t index) const
96
96
  }
97
97
  else
98
98
  {
99
- return static_cast<size_t>(index);
99
+ return static_cast<long>(index);
100
100
  }
101
101
  }
102
102
 
103
103
  inline Rice::Array::Proxy::
104
- Proxy(Array array, size_t index)
104
+ Proxy(Array array, long index)
105
105
  : array_(array)
106
106
  , index_(index)
107
107
  {
@@ -130,7 +130,7 @@ operator=(T const & value)
130
130
 
131
131
  template<typename Array_Ref_T, typename Value_T>
132
132
  inline Rice::Array::Iterator<Array_Ref_T, Value_T>::
133
- Iterator(Array_Ref_T array, size_t index)
133
+ Iterator(Array_Ref_T array, long index)
134
134
  : array_(array)
135
135
  , index_(index)
136
136
  {
@@ -221,7 +221,7 @@ array() const
221
221
  }
222
222
 
223
223
  template<typename Array_Ref_T, typename Value_T>
224
- size_t
224
+ long
225
225
  Rice::Array::Iterator<Array_Ref_T, Value_T>::
226
226
  index() const
227
227
  {
@@ -9,6 +9,7 @@
9
9
 
10
10
  /*!
11
11
  * \example inheritance/animals.cpp
12
+ * \example callbacks/sample_callbacks.cpp
12
13
  */
13
14
 
14
15
  namespace Rice
@@ -1,391 +1,47 @@
1
1
  #ifndef Rice__Constructor__hpp_
2
2
  #define Rice__Constructor__hpp_
3
3
 
4
- // This is a generated file. DO NOT EDIT!!
5
-
6
-
7
4
  // This causes problems with certain C++ libraries
8
5
  #undef TYPE
9
6
 
10
7
  #include "to_from_ruby_defn.hpp"
11
- #include "detail/method_data.hpp"
8
+
12
9
  namespace Rice
13
10
  {
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>
11
+ //! Define a Type's Constructor and it's arguments.
12
+ /*! E.g. for the default constructor on a Type:
13
+ \code
14
+ define_class<Test>()
15
+ .define_constructor(Constructor<Test>());
16
+ \endcode
17
+ *
18
+ * The first template type must be the type being wrapped.
19
+ * Afterwards any extra types must match the appropriate constructor
20
+ * to be used in C++ when constructing the object.
21
+ *
22
+ * For more information, see Rice::Data_Type::define_constructor.
23
+ */
24
+ template<typename T, typename ...Arg_T>
36
25
  class Constructor
37
26
  {
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
27
  public:
48
- static void construct(Object self)
28
+ static void construct(Object self, Arg_T... args)
49
29
  {
50
- DATA_PTR(self.value()) = new T();
30
+ DATA_PTR(self.value()) = new T(args...);
51
31
  }
52
32
  };
53
33
 
54
-
55
- template<typename T>
56
- class Constructor<T, Object, void, void, void, void, void, void, void, void, void, void, void, void, void, void>
34
+ //! Special-case Constructor used when defining Directors.
35
+ template<typename T, typename ...Arg_T>
36
+ class Constructor<T, Object, Arg_T...>
57
37
  {
58
- public:
59
- static void construct(Object self)
60
- {
61
- DATA_PTR(self.value()) = new T(self);
62
- }
38
+ public:
39
+ static void construct(Object self, Arg_T... args)
40
+ {
41
+ DATA_PTR(self.value()) = new T(self, args...);
42
+ }
63
43
  };
44
+ }
64
45
 
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_
46
+ #endif
391
47