rice 2.2.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/COPYING +2 -2
  3. data/Doxyfile +1 -1
  4. data/Makefile.in +15 -7
  5. data/README.md +115 -117
  6. data/aclocal.m4 +25 -28
  7. data/ax_cxx_compile_stdcxx.m4 +951 -0
  8. data/configure +486 -61
  9. data/configure.ac +3 -3
  10. data/extconf.rb +6 -2
  11. data/rice/Array.hpp +16 -16
  12. data/rice/Array.ipp +11 -11
  13. data/rice/Class_defn.hpp +1 -0
  14. data/rice/Constructor.hpp +27 -371
  15. data/rice/Director.hpp +3 -3
  16. data/rice/Exception.cpp +2 -7
  17. data/rice/Hash.hpp +8 -5
  18. data/rice/Makefile.am +0 -4
  19. data/rice/Makefile.in +6 -10
  20. data/rice/Object.cpp +1 -1
  21. data/rice/Object.ipp +15 -1
  22. data/rice/Object_defn.hpp +24 -1
  23. data/rice/String.cpp +2 -7
  24. data/rice/Struct.cpp +2 -2
  25. data/rice/Struct.hpp +1 -1
  26. data/rice/Struct.ipp +1 -1
  27. data/rice/config.hpp +2 -2
  28. data/rice/config.hpp.in +2 -2
  29. data/rice/detail/Arguments.hpp +1 -1
  30. data/rice/detail/Auto_Function_Wrapper.ipp +512 -1025
  31. data/rice/detail/Auto_Member_Function_Wrapper.ipp +272 -545
  32. data/rice/detail/ruby.hpp +0 -4
  33. data/rice/detail/ruby_version_code.hpp +1 -1
  34. data/rice/detail/wrap_function.hpp +32 -307
  35. data/rice/protect.hpp +3 -57
  36. data/rice/to_from_ruby.ipp +3 -3
  37. data/ruby/Makefile.in +4 -4
  38. data/ruby/lib/Makefile.in +4 -4
  39. data/ruby/lib/version.rb +1 -1
  40. data/sample/Makefile.am +10 -4
  41. data/sample/Makefile.in +14 -8
  42. data/sample/callbacks/extconf.rb +3 -0
  43. data/sample/callbacks/sample_callbacks.cpp +38 -0
  44. data/sample/callbacks/test.rb +28 -0
  45. data/test/Makefile.am +1 -0
  46. data/test/Makefile.in +15 -9
  47. data/test/embed_ruby.cpp +21 -0
  48. data/test/embed_ruby.hpp +4 -0
  49. data/test/ext/Makefile.in +4 -4
  50. data/test/test_Address_Registration_Guard.cpp +2 -1
  51. data/test/test_Array.cpp +2 -1
  52. data/test/test_Builtin_Object.cpp +2 -1
  53. data/test/test_Class.cpp +2 -1
  54. data/test/test_Data_Object.cpp +2 -1
  55. data/test/test_Data_Type.cpp +2 -1
  56. data/test/test_Director.cpp +2 -1
  57. data/test/test_Enum.cpp +2 -1
  58. data/test/test_Exception.cpp +2 -1
  59. data/test/test_Hash.cpp +2 -1
  60. data/test/test_Identifier.cpp +2 -1
  61. data/test/test_Memory_Management.cpp +2 -1
  62. data/test/test_Module.cpp +2 -1
  63. data/test/test_Object.cpp +13 -1
  64. data/test/test_String.cpp +2 -1
  65. data/test/test_Struct.cpp +2 -1
  66. data/test/test_Symbol.cpp +2 -1
  67. data/test/test_To_From_Ruby.cpp +2 -1
  68. data/test/test_global_functions.cpp +2 -1
  69. data/test/test_rice.rb +4 -0
  70. data/test/unittest.cpp +34 -8
  71. metadata +26 -11
  72. data/check_stdcxx_11.ac +0 -103
  73. data/rice/detail/object_call.hpp +0 -69
  74. data/rice/detail/object_call.ipp +0 -131
  75. data/rice/detail/traits.hpp +0 -43
  76. data/rice/detail/wrap_function.ipp +0 -514
@@ -68,11 +68,7 @@ extern "C" typedef VALUE (*RUBY_VALUE_FUNC)(VALUE);
68
68
  #undef bind
69
69
  #endif
70
70
 
71
- #ifdef HAVE_CXX11
72
71
  #define std_unique_ptr std::unique_ptr
73
- #else
74
- #define std_unique_ptr std::auto_ptr
75
- #endif
76
72
 
77
73
  #endif // Rice__detail__ruby__hpp_
78
74
 
@@ -1,6 +1,6 @@
1
1
  #ifndef Rice__detail__ruby_version_code__hpp
2
2
  #define Rice__detail__ruby_version_code__hpp
3
3
 
4
- #define RICE__RUBY_VERSION_CODE 270
4
+ #define RICE__RUBY_VERSION_CODE 300
5
5
 
6
6
  #endif // Rice__detail__ruby_version_code__hpp
@@ -1,9 +1,6 @@
1
1
  #ifndef Rice__detail__wrap_function__hpp_
2
2
  #define Rice__detail__wrap_function__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
 
@@ -12,6 +9,8 @@
12
9
  #include "../Object_defn.hpp"
13
10
  #include "../Data_Object.hpp"
14
11
  #include "Arguments.hpp"
12
+ #include "Auto_Function_Wrapper.hpp"
13
+ #include "Auto_Member_Function_Wrapper.hpp"
15
14
 
16
15
  namespace Rice
17
16
  {
@@ -19,323 +18,49 @@ namespace Rice
19
18
  namespace detail
20
19
  {
21
20
 
22
- #ifdef DOXYGEN
23
-
24
- #else
25
-
26
21
  template<typename Ret_T>
27
22
  Wrapped_Function * wrap_function(
28
23
  Ret_T (*func)(),
29
- Data_Object<Exception_Handler> handler = Rice::Nil,
30
- Arguments* arguments = 0);
31
-
32
- template<typename Ret_T, typename Arg0_T>
33
- Wrapped_Function * wrap_function(
34
- Ret_T (*func)(Arg0_T),
35
- Data_Object<Exception_Handler> handler = Rice::Nil,
36
- Arguments* arguments = 0);
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 = Rice::Nil,
42
- Arguments* arguments = 0);
43
-
44
- template<typename Ret_T, typename Self_T>
45
- Wrapped_Function * wrap_function(
46
- Ret_T (Self_T::*func)() const,
47
- Data_Object<Exception_Handler> handler = Rice::Nil,
48
- Arguments* arguments = 0);
49
-
50
- // ---------------------------------------------------------------------
51
-
52
- template<typename Ret_T, typename Arg0_T, typename Arg1_T>
53
- Wrapped_Function * wrap_function(
54
- Ret_T (*func)(Arg0_T, Arg1_T),
55
- Data_Object<Exception_Handler> handler = Rice::Nil,
56
- Arguments* arguments = 0);
57
-
58
- template<typename Ret_T, typename Self_T, typename Arg0_T>
59
- Wrapped_Function * wrap_function(
60
- Ret_T (Self_T::*func)(Arg0_T),
61
- Data_Object<Exception_Handler> handler = Rice::Nil,
62
- Arguments* arguments = 0);
63
-
64
- template<typename Ret_T, typename Self_T, typename Arg0_T>
65
- Wrapped_Function * wrap_function(
66
- Ret_T (Self_T::*func)(Arg0_T) const,
67
- Data_Object<Exception_Handler> handler = Rice::Nil,
68
- Arguments* arguments = 0);
69
-
70
- // ---------------------------------------------------------------------
71
-
72
- template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
73
- Wrapped_Function * wrap_function(
74
- Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T),
75
- Data_Object<Exception_Handler> handler = Rice::Nil,
76
- Arguments* arguments = 0);
77
-
78
- template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
79
- Wrapped_Function * wrap_function(
80
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T),
81
- Data_Object<Exception_Handler> handler = Rice::Nil,
82
- Arguments* arguments = 0);
83
-
84
- template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T>
85
- Wrapped_Function * wrap_function(
86
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T) const,
87
- Data_Object<Exception_Handler> handler = Rice::Nil,
88
- Arguments* arguments = 0);
89
-
90
- // ---------------------------------------------------------------------
91
-
92
- template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
93
- Wrapped_Function * wrap_function(
94
- Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T),
95
- Data_Object<Exception_Handler> handler = Rice::Nil,
96
- Arguments* arguments = 0);
97
-
98
- template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
99
- Wrapped_Function * wrap_function(
100
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T),
101
- Data_Object<Exception_Handler> handler = Rice::Nil,
102
- Arguments* arguments = 0);
103
-
104
- template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
105
- Wrapped_Function * wrap_function(
106
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T) const,
107
- Data_Object<Exception_Handler> handler = Rice::Nil,
108
- Arguments* arguments = 0);
109
-
110
- // ---------------------------------------------------------------------
111
-
112
- template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
113
- Wrapped_Function * wrap_function(
114
- Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T),
115
- Data_Object<Exception_Handler> handler = Rice::Nil,
116
- Arguments* arguments = 0);
117
-
118
- template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
119
- Wrapped_Function * wrap_function(
120
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T),
121
- Data_Object<Exception_Handler> handler = Rice::Nil,
122
- Arguments* arguments = 0);
123
-
124
- template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
125
- Wrapped_Function * wrap_function(
126
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T) const,
127
- Data_Object<Exception_Handler> handler = Rice::Nil,
128
- Arguments* arguments = 0);
129
-
130
- // ---------------------------------------------------------------------
131
-
132
- template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
133
- Wrapped_Function * wrap_function(
134
- Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
135
- Data_Object<Exception_Handler> handler = Rice::Nil,
136
- Arguments* arguments = 0);
137
-
138
- template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
139
- Wrapped_Function * wrap_function(
140
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T),
141
- Data_Object<Exception_Handler> handler = Rice::Nil,
142
- Arguments* arguments = 0);
143
-
144
- template<typename Ret_T, typename Self_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
145
- Wrapped_Function * wrap_function(
146
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T) const,
147
- Data_Object<Exception_Handler> handler = Rice::Nil,
148
- Arguments* arguments = 0);
149
-
150
- // ---------------------------------------------------------------------
151
-
152
- 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>
153
- Wrapped_Function * wrap_function(
154
- Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
155
- Data_Object<Exception_Handler> handler = Rice::Nil,
156
- Arguments* arguments = 0);
157
-
158
- 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>
159
- Wrapped_Function * wrap_function(
160
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
161
- Data_Object<Exception_Handler> handler = Rice::Nil,
162
- Arguments* arguments = 0);
163
-
164
- 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>
165
- Wrapped_Function * wrap_function(
166
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T) const,
167
- Data_Object<Exception_Handler> handler = Rice::Nil,
168
- Arguments* arguments = 0);
169
-
170
- // ---------------------------------------------------------------------
171
-
172
- 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>
173
- Wrapped_Function * wrap_function(
174
- Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
175
- Data_Object<Exception_Handler> handler = Rice::Nil,
176
- Arguments* arguments = 0);
177
-
178
- 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>
179
- Wrapped_Function * wrap_function(
180
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
181
- Data_Object<Exception_Handler> handler = Rice::Nil,
182
- Arguments* arguments = 0);
183
-
184
- 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>
185
- Wrapped_Function * wrap_function(
186
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T) const,
187
- Data_Object<Exception_Handler> handler = Rice::Nil,
188
- Arguments* arguments = 0);
189
-
190
- // ---------------------------------------------------------------------
191
-
192
- 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>
193
- Wrapped_Function * wrap_function(
194
- Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
195
- Data_Object<Exception_Handler> handler = Rice::Nil,
196
- Arguments* arguments = 0);
197
-
198
- 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>
199
- Wrapped_Function * wrap_function(
200
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
201
- Data_Object<Exception_Handler> handler = Rice::Nil,
202
- Arguments* arguments = 0);
203
-
204
- 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>
205
- Wrapped_Function * wrap_function(
206
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T) const,
207
- Data_Object<Exception_Handler> handler = Rice::Nil,
208
- Arguments* arguments = 0);
209
-
210
- // ---------------------------------------------------------------------
211
-
212
- 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>
213
- Wrapped_Function * wrap_function(
214
- Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
215
- Data_Object<Exception_Handler> handler = Rice::Nil,
216
- Arguments* arguments = 0);
217
-
218
- 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>
219
- Wrapped_Function * wrap_function(
220
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
221
- Data_Object<Exception_Handler> handler = Rice::Nil,
222
- Arguments* arguments = 0);
223
-
224
- 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>
225
- Wrapped_Function * wrap_function(
226
- Ret_T (Self_T::*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T) const,
227
- Data_Object<Exception_Handler> handler = Rice::Nil,
228
- Arguments* arguments = 0);
229
-
230
- // ---------------------------------------------------------------------
231
-
232
- 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>
233
- Wrapped_Function * wrap_function(
234
- 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),
235
- Data_Object<Exception_Handler> handler = Rice::Nil,
236
- Arguments* arguments = 0);
237
-
238
- 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>
239
- Wrapped_Function * wrap_function(
240
- 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),
241
- Data_Object<Exception_Handler> handler = Rice::Nil,
242
- Arguments* arguments = 0);
243
-
244
- 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>
245
- Wrapped_Function * wrap_function(
246
- 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,
247
- Data_Object<Exception_Handler> handler = Rice::Nil,
248
- Arguments* arguments = 0);
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, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_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, Arg8_T, Arg9_T, Arg10_T, Arg11_T),
255
- Data_Object<Exception_Handler> handler = Rice::Nil,
256
- Arguments* arguments = 0);
257
-
258
- 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>
259
- Wrapped_Function * wrap_function(
260
- 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),
261
- Data_Object<Exception_Handler> handler = Rice::Nil,
262
- Arguments* arguments = 0);
263
-
264
- 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>
265
- Wrapped_Function * wrap_function(
266
- 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,
267
- Data_Object<Exception_Handler> handler = Rice::Nil,
268
- Arguments* arguments = 0);
269
-
270
- // ---------------------------------------------------------------------
271
-
272
- 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>
273
- Wrapped_Function * wrap_function(
274
- 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),
275
- Data_Object<Exception_Handler> handler = Rice::Nil,
276
- Arguments* arguments = 0);
277
-
278
- 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>
279
- Wrapped_Function * wrap_function(
280
- 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),
281
- Data_Object<Exception_Handler> handler = Rice::Nil,
282
- Arguments* arguments = 0);
283
-
284
- 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>
285
- Wrapped_Function * wrap_function(
286
- 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,
287
- Data_Object<Exception_Handler> handler = Rice::Nil,
288
- Arguments* arguments = 0);
289
-
290
- // ---------------------------------------------------------------------
291
-
292
- 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>
293
- Wrapped_Function * wrap_function(
294
- 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),
295
- Data_Object<Exception_Handler> handler = Rice::Nil,
296
- Arguments* arguments = 0);
297
-
298
- 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>
299
- Wrapped_Function * wrap_function(
300
- 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),
301
- Data_Object<Exception_Handler> handler = Rice::Nil,
302
- Arguments* arguments = 0);
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, typename Arg8_T, typename Arg9_T, typename Arg10_T, typename Arg11_T, typename Arg12_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, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T) const,
307
- Data_Object<Exception_Handler> handler = Rice::Nil,
308
- Arguments* arguments = 0);
309
-
310
- // ---------------------------------------------------------------------
24
+ Data_Object<Exception_Handler> handler,
25
+ Arguments* arguments)
26
+ {
27
+ typedef Ret_T (*Func)();
28
+ return new Auto_Function_Wrapper<Func, Ret_T>(func, handler, arguments);
29
+ }
311
30
 
312
- 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>
31
+ template<typename Ret_T, typename ...Arg_T>
313
32
  Wrapped_Function * wrap_function(
314
- 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),
315
- Data_Object<Exception_Handler> handler = Rice::Nil,
316
- Arguments* arguments = 0);
33
+ Ret_T (*func)(Arg_T...),
34
+ Data_Object<Exception_Handler> handler,
35
+ Arguments* arguments)
36
+ {
37
+ typedef Ret_T (*Func)(Arg_T...);
38
+ return new Auto_Function_Wrapper<Func, Ret_T, Arg_T...>(func, handler, arguments);
39
+ }
317
40
 
318
- 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>
41
+ template<typename Ret_T, typename Self_T, typename ...Arg_T>
319
42
  Wrapped_Function * wrap_function(
320
- 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),
321
- Data_Object<Exception_Handler> handler = Rice::Nil,
322
- Arguments* arguments = 0);
43
+ Ret_T (Self_T::*func)(Arg_T...),
44
+ Data_Object<Exception_Handler> handler,
45
+ Arguments* arguments)
46
+ {
47
+ typedef Ret_T (Self_T::*Func)(Arg_T...);
48
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg_T...>(func, handler, arguments);
49
+ }
323
50
 
324
- 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>
51
+ template<typename Ret_T, typename Self_T, typename ...Arg_T>
325
52
  Wrapped_Function * wrap_function(
326
- 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,
327
- Data_Object<Exception_Handler> handler = Rice::Nil,
328
- Arguments* arguments = 0);
329
-
330
- // ---------------------------------------------------------------------
331
-
332
- #endif // DOXYGEN
53
+ Ret_T (Self_T::*func)(Arg_T...) const,
54
+ Data_Object<Exception_Handler> handler,
55
+ Arguments* arguments)
56
+ {
57
+ typedef Ret_T (Self_T::*Func)(Arg_T...) const;
58
+ return new Auto_Member_Function_Wrapper<Func, Ret_T, Self_T, Arg_T...>(func, handler, arguments);
59
+ }
333
60
 
334
61
  } // namespace detail
335
62
 
336
63
  } // namespace Rice
337
64
 
338
- #include "wrap_function.ipp"
339
-
340
65
  #endif // Rice__detail__wrap_function__hpp_
341
66
 
@@ -1,17 +1,14 @@
1
1
  #ifndef Rice__protect__hpp_
2
2
  #define Rice__protect__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 "Object_defn.hpp"
8
+
11
9
  namespace Rice
12
10
  {
13
11
 
14
- #ifdef DOXYGEN
15
12
  /*! \file
16
13
  * \brief A collection of functions (overloaded on number of
17
14
  * arguments) for calling C functions that might raise Ruby exceptions.
@@ -30,59 +27,8 @@ namespace Rice
30
27
  * reference to any of its arguments (though you can use non-const
31
28
  * pointers).
32
29
  */
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
-
85
- #endif // DOXYGEN
30
+ template<typename Fun, typename ...ArgT>
31
+ VALUE protect(Fun fun, ArgT const &... args);
86
32
 
87
33
  } // namespace Rice
88
34