rice 1.1.0 → 1.2.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 (54) hide show
  1. data/Doxyfile +1 -1
  2. data/Makefile.in +3 -2
  3. data/README +247 -16
  4. data/aclocal.m4 +62 -51
  5. data/configure +1585 -1456
  6. data/extconf.rb +9 -1
  7. data/rice/Arg.hpp +8 -0
  8. data/rice/Arg_impl.hpp +124 -0
  9. data/rice/Arg_operators.cpp +21 -0
  10. data/rice/Arg_operators.hpp +19 -0
  11. data/rice/Constructor.hpp +150 -0
  12. data/rice/Data_Type.ipp +51 -6
  13. data/rice/Director.cpp +19 -0
  14. data/rice/Director.hpp +47 -0
  15. data/rice/Enum.hpp +2 -3
  16. data/rice/Enum.ipp +1 -1
  17. data/rice/Hash.hpp +1 -1
  18. data/rice/Makefile.am +7 -0
  19. data/rice/Makefile.in +18 -7
  20. data/rice/Module_impl.hpp +36 -3
  21. data/rice/Module_impl.ipp +56 -7
  22. data/rice/VM.cpp +2 -2
  23. data/rice/config.hpp +1 -1
  24. data/rice/detail/Arguments.hpp +118 -0
  25. data/rice/detail/Auto_Function_Wrapper.hpp +206 -96
  26. data/rice/detail/Auto_Function_Wrapper.ipp +1687 -144
  27. data/rice/detail/Auto_Member_Function_Wrapper.hpp +234 -123
  28. data/rice/detail/Auto_Member_Function_Wrapper.ipp +1133 -306
  29. data/rice/detail/Caster.hpp +3 -1
  30. data/rice/detail/creation_funcs.hpp +0 -8
  31. data/rice/detail/creation_funcs.ipp +1 -27
  32. data/rice/detail/define_method_and_auto_wrap.hpp +3 -1
  33. data/rice/detail/define_method_and_auto_wrap.ipp +4 -3
  34. data/rice/detail/object_call.ipp +1 -1
  35. data/rice/detail/ruby.hpp +1 -33
  36. data/rice/detail/wrap_function.hpp +103 -48
  37. data/rice/detail/wrap_function.ipp +154 -96
  38. data/rice/generate_code.rb +520 -55
  39. data/rice/global_function.hpp +12 -1
  40. data/rice/global_function.ipp +14 -2
  41. data/ruby/Makefile.in +5 -4
  42. data/ruby/lib/Makefile.in +4 -3
  43. data/ruby/lib/version.rb +1 -1
  44. data/sample/Makefile.in +4 -3
  45. data/test/Makefile.am +2 -0
  46. data/test/Makefile.in +32 -13
  47. data/test/test_Class.cpp +36 -14
  48. data/test/test_Constructor.cpp +176 -1
  49. data/test/test_Data_Type.cpp +121 -0
  50. data/test/test_Director.cpp +225 -0
  51. data/test/test_Enum.cpp +33 -0
  52. data/test/test_Module.cpp +175 -0
  53. data/test/test_global_functions.cpp +70 -1
  54. metadata +27 -7
@@ -44,7 +44,9 @@ protected:
44
44
  }
45
45
  else
46
46
  {
47
- throw std::runtime_error("bad cast");
47
+ std::string s = "bad cast. No caster found for ";
48
+ s += type_.name().str();
49
+ throw std::runtime_error(s);
48
50
  }
49
51
  }
50
52
  }
@@ -9,14 +9,6 @@ class Class;
9
9
  namespace detail
10
10
  {
11
11
 
12
- //! Ruby 1.6.x doesn't have rb_define_alloc_func, but Ruby 1.8 will.
13
- //! It's the "new" way to allocate objects. This function will just
14
- //! define a singleton new method on older versions of Ruby, and will
15
- //! call rb_define_alloc_func() on newer versions of Ruby.
16
- void define_alloc_func(
17
- Class const & klass,
18
- RUBY_VALUE_FUNC allocate_func);
19
-
20
12
  //! Like define_alloc_func, but allows the user to define an
21
13
  //! "initialize" method too.
22
14
  template<typename Initialize_Func_T>
@@ -7,45 +7,19 @@ namespace Rice
7
7
  namespace detail
8
8
  {
9
9
 
10
- namespace
11
- {
12
- inline VALUE ruby_16_new(int argc, VALUE * argv, VALUE klass)
13
- {
14
- VALUE obj = rb_funcall(klass, rb_intern("allocate"), 0);
15
- rb_obj_call_init(obj, argc, argv);
16
- return obj;
17
- }
18
- }
19
-
20
- inline void define_alloc_func(
21
- Class const & klass,
22
- RUBY_VALUE_FUNC allocate_func)
23
- {
24
- #if RICE__RUBY_VERSION_CODE < 170
25
- klass.define_singleton_method("allocate", allocate_func);
26
- klass.define_singleton_method("new", ruby_16_new);
27
- #else
28
- rb_define_alloc_func(klass, allocate_func);
29
- #endif
30
- }
31
-
32
10
  template<typename Initialize_Func_T>
33
11
  inline void define_creation_funcs(
34
12
  Class const & klass,
35
13
  RUBY_VALUE_FUNC allocate_func,
36
14
  Initialize_Func_T initialize_func)
37
15
  {
38
- define_alloc_func(klass, allocate_func);
16
+ rb_define_alloc_func(klass, allocate_func);
39
17
  klass.define_method("initialize", initialize_func);
40
18
  }
41
19
 
42
20
  inline void undef_alloc_func(Class const & klass)
43
21
  {
44
- #if RICE__RUBY_VERSION_CODE >= 170
45
22
  rb_undef_alloc_func(klass);
46
- #else
47
- rb_undef_method(CLASS_OF(klass), "new");
48
- #endif
49
23
  }
50
24
 
51
25
  inline void undef_creation_funcs(Class const & klass)
@@ -4,6 +4,7 @@
4
4
  #include "ruby.hpp"
5
5
  #include "../Data_Object.hpp"
6
6
  #include "../Identifier.hpp"
7
+ #include "Arguments.hpp"
7
8
 
8
9
  namespace Rice
9
10
  {
@@ -18,7 +19,8 @@ void define_method_and_auto_wrap(
18
19
  VALUE klass,
19
20
  Identifier name,
20
21
  Fun_T function,
21
- Data_Object<Exception_Handler> handler);
22
+ Data_Object<Exception_Handler> handler,
23
+ Arguments* arguments = 0);
22
24
 
23
25
  } // detail
24
26
 
@@ -12,17 +12,18 @@ define_method_and_auto_wrap(
12
12
  VALUE klass,
13
13
  Identifier name,
14
14
  Fun_T function,
15
- Data_Object<Exception_Handler> handler)
15
+ Data_Object<Exception_Handler> handler,
16
+ Arguments* arguments)
16
17
  {
17
18
  Data_Object<Wrapped_Function> f(
18
- wrap_function(function, handler),
19
+ wrap_function(function, handler, arguments),
19
20
  rb_cObject);
20
21
  Rice::protect(
21
22
  define_method_with_data,
22
23
  klass,
23
24
  name.id(),
24
25
  f->func(),
25
- f->arity(),
26
+ -1,
26
27
  f);
27
28
  }
28
29
 
@@ -6,7 +6,7 @@
6
6
  inline Rice::Object Rice::Object::
7
7
  call(Identifier id) const
8
8
  {
9
- VALUE args[] = { Qnil };
9
+ VALUE args[] = { };
10
10
  return protect(rb_funcall2, value(), id, 0, args);
11
11
  }
12
12
 
@@ -42,39 +42,7 @@ extern "C" typedef VALUE (*RUBY_VALUE_FUNC)(VALUE);
42
42
  // Fix Ruby RUBY_METHOD_FUNC from macro to typedef
43
43
  #if defined(RUBY_METHOD_FUNC)
44
44
  # undef RUBY_METHOD_FUNC
45
- # if RICE__RUBY_VERSION_CODE <= 166
46
- extern "C" typedef VALUE (*RUBY_METHOD_FUNC)();
47
- # else
48
- extern "C" typedef VALUE (*RUBY_METHOD_FUNC)(ANYARGS);
49
- # endif
50
- #endif
51
-
52
- // Some functions have the wrong prototype on Ruby 1.6. Casting from a
53
- // C++ function to an extern "C" function won't result in correct
54
- // behavior on all platforms. Fortunately this has been fixed in newer
55
- // versions of Ruby.
56
- #if RICE__RUBY_VERSION_CODE < 170
57
- namespace Rice
58
- {
59
- namespace detail
60
- {
61
- extern "C" typedef VALUE
62
- (*Rb_Protect_Signature)(RUBY_VALUE_FUNC, VALUE, int *);
63
- extern "C" typedef void
64
- (*Rb_Gc_Mark_Signature)(VALUE);
65
- extern "C" typedef void
66
- (*Rb_Set_End_Proc_Signature)(void (*)(VALUE), VALUE);
67
- } // detail
68
- } // Rice
69
- //! Ruby 1.6 has the wrong signature for rb_protect.
70
- # define rb_protect(f, arg, state) \
71
- ((::Rice::detail::Rb_Protect_Signature)(rb_protect))(f, arg, state)
72
- //! Ruby 1.6 has the wrong signature for rb_gc_mark.
73
- # define rb_gc_mark(value) \
74
- ((::Rice::detail::Rb_Gc_Mark_Signature)(rb_gc_mark))(value)
75
- //! Ruby 1.6 has the wrong signature for rb_set_end_proc.
76
- # define rb_set_end_proc(f,v) \
77
- ((::Rice::detail::Rb_Set_End_Proc_Signature)(rb_set_end_proc))(f, v)
45
+ extern "C" typedef VALUE (*RUBY_METHOD_FUNC)(ANYARGS);
78
46
  #endif
79
47
 
80
48
  #ifndef RSTRING_LEN
@@ -11,6 +11,7 @@
11
11
  #include "Wrapped_Function.hpp"
12
12
  #include "../Object_defn.hpp"
13
13
  #include "../Data_Object.hpp"
14
+ #include "Arguments.hpp"
14
15
 
15
16
  namespace Rice
16
17
  {
@@ -22,260 +23,314 @@ namespace detail
22
23
 
23
24
  #else
24
25
 
26
+ template<typename Ret_T>
27
+ Wrapped_Function * wrap_function(
28
+ Ret_T (*func)(),
29
+ Data_Object<Exception_Handler> handler = Rice::Nil,
30
+ Arguments* arguments = 0);
31
+
25
32
  template<typename Ret_T, typename Arg0_T>
26
33
  Wrapped_Function * wrap_function(
27
34
  Ret_T (*func)(Arg0_T),
28
- Data_Object<Exception_Handler> handler = Rice::Nil);
35
+ Data_Object<Exception_Handler> handler = Rice::Nil,
36
+ Arguments* arguments = 0);
29
37
 
30
38
  template<typename Ret_T, typename Self_T>
31
39
  Wrapped_Function * wrap_function(
32
40
  Ret_T (Self_T::*func)(),
33
- Data_Object<Exception_Handler> handler = Rice::Nil);
41
+ Data_Object<Exception_Handler> handler = Rice::Nil,
42
+ Arguments* arguments = 0);
34
43
 
35
44
  template<typename Ret_T, typename Self_T>
36
45
  Wrapped_Function * wrap_function(
37
46
  Ret_T (Self_T::*func)() const,
38
- Data_Object<Exception_Handler> handler = Rice::Nil);
47
+ Data_Object<Exception_Handler> handler = Rice::Nil,
48
+ Arguments* arguments = 0);
39
49
 
40
50
  // ---------------------------------------------------------------------
41
51
  template<typename Ret_T, typename Arg0_T, typename Arg1_T>
42
52
  Wrapped_Function * wrap_function(
43
53
  Ret_T (*func)(Arg0_T, Arg1_T),
44
- Data_Object<Exception_Handler> handler = Rice::Nil);
54
+ Data_Object<Exception_Handler> handler = Rice::Nil,
55
+ Arguments* arguments = 0);
45
56
 
46
57
  template<typename Ret_T, typename Self_T, typename Arg1_T>
47
58
  Wrapped_Function * wrap_function(
48
59
  Ret_T (Self_T::*func)(Arg1_T),
49
- Data_Object<Exception_Handler> handler = Rice::Nil);
60
+ Data_Object<Exception_Handler> handler = Rice::Nil,
61
+ Arguments* arguments = 0);
50
62
 
51
63
  template<typename Ret_T, typename Self_T, typename Arg1_T>
52
64
  Wrapped_Function * wrap_function(
53
65
  Ret_T (Self_T::*func)(Arg1_T) const,
54
- Data_Object<Exception_Handler> handler = Rice::Nil);
66
+ Data_Object<Exception_Handler> handler = Rice::Nil,
67
+ Arguments* arguments = 0);
55
68
 
56
69
  // ---------------------------------------------------------------------
57
70
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T>
58
71
  Wrapped_Function * wrap_function(
59
72
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T),
60
- Data_Object<Exception_Handler> handler = Rice::Nil);
73
+ Data_Object<Exception_Handler> handler = Rice::Nil,
74
+ Arguments* arguments = 0);
61
75
 
62
76
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
63
77
  Wrapped_Function * wrap_function(
64
78
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T),
65
- Data_Object<Exception_Handler> handler = Rice::Nil);
79
+ Data_Object<Exception_Handler> handler = Rice::Nil,
80
+ Arguments* arguments = 0);
66
81
 
67
82
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T>
68
83
  Wrapped_Function * wrap_function(
69
84
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T) const,
70
- Data_Object<Exception_Handler> handler = Rice::Nil);
85
+ Data_Object<Exception_Handler> handler = Rice::Nil,
86
+ Arguments* arguments = 0);
71
87
 
72
88
  // ---------------------------------------------------------------------
73
89
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
74
90
  Wrapped_Function * wrap_function(
75
91
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T),
76
- Data_Object<Exception_Handler> handler = Rice::Nil);
92
+ Data_Object<Exception_Handler> handler = Rice::Nil,
93
+ Arguments* arguments = 0);
77
94
 
78
95
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
79
96
  Wrapped_Function * wrap_function(
80
97
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T),
81
- Data_Object<Exception_Handler> handler = Rice::Nil);
98
+ Data_Object<Exception_Handler> handler = Rice::Nil,
99
+ Arguments* arguments = 0);
82
100
 
83
101
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T>
84
102
  Wrapped_Function * wrap_function(
85
103
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T) const,
86
- Data_Object<Exception_Handler> handler = Rice::Nil);
104
+ Data_Object<Exception_Handler> handler = Rice::Nil,
105
+ Arguments* arguments = 0);
87
106
 
88
107
  // ---------------------------------------------------------------------
89
108
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
90
109
  Wrapped_Function * wrap_function(
91
110
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T),
92
- Data_Object<Exception_Handler> handler = Rice::Nil);
111
+ Data_Object<Exception_Handler> handler = Rice::Nil,
112
+ Arguments* arguments = 0);
93
113
 
94
114
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
95
115
  Wrapped_Function * wrap_function(
96
116
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T),
97
- Data_Object<Exception_Handler> handler = Rice::Nil);
117
+ Data_Object<Exception_Handler> handler = Rice::Nil,
118
+ Arguments* arguments = 0);
98
119
 
99
120
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T>
100
121
  Wrapped_Function * wrap_function(
101
122
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T) const,
102
- Data_Object<Exception_Handler> handler = Rice::Nil);
123
+ Data_Object<Exception_Handler> handler = Rice::Nil,
124
+ Arguments* arguments = 0);
103
125
 
104
126
  // ---------------------------------------------------------------------
105
127
  template<typename Ret_T, typename Arg0_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
106
128
  Wrapped_Function * wrap_function(
107
129
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
108
- Data_Object<Exception_Handler> handler = Rice::Nil);
130
+ Data_Object<Exception_Handler> handler = Rice::Nil,
131
+ Arguments* arguments = 0);
109
132
 
110
133
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
111
134
  Wrapped_Function * wrap_function(
112
135
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T),
113
- Data_Object<Exception_Handler> handler = Rice::Nil);
136
+ Data_Object<Exception_Handler> handler = Rice::Nil,
137
+ Arguments* arguments = 0);
114
138
 
115
139
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T>
116
140
  Wrapped_Function * wrap_function(
117
141
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T) const,
118
- Data_Object<Exception_Handler> handler = Rice::Nil);
142
+ Data_Object<Exception_Handler> handler = Rice::Nil,
143
+ Arguments* arguments = 0);
119
144
 
120
145
  // ---------------------------------------------------------------------
121
146
  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>
122
147
  Wrapped_Function * wrap_function(
123
148
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
124
- Data_Object<Exception_Handler> handler = Rice::Nil);
149
+ Data_Object<Exception_Handler> handler = Rice::Nil,
150
+ Arguments* arguments = 0);
125
151
 
126
152
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
127
153
  Wrapped_Function * wrap_function(
128
154
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T),
129
- Data_Object<Exception_Handler> handler = Rice::Nil);
155
+ Data_Object<Exception_Handler> handler = Rice::Nil,
156
+ Arguments* arguments = 0);
130
157
 
131
158
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T>
132
159
  Wrapped_Function * wrap_function(
133
160
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T) const,
134
- Data_Object<Exception_Handler> handler = Rice::Nil);
161
+ Data_Object<Exception_Handler> handler = Rice::Nil,
162
+ Arguments* arguments = 0);
135
163
 
136
164
  // ---------------------------------------------------------------------
137
165
  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>
138
166
  Wrapped_Function * wrap_function(
139
167
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
140
- Data_Object<Exception_Handler> handler = Rice::Nil);
168
+ Data_Object<Exception_Handler> handler = Rice::Nil,
169
+ Arguments* arguments = 0);
141
170
 
142
171
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
143
172
  Wrapped_Function * wrap_function(
144
173
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T),
145
- Data_Object<Exception_Handler> handler = Rice::Nil);
174
+ Data_Object<Exception_Handler> handler = Rice::Nil,
175
+ Arguments* arguments = 0);
146
176
 
147
177
  template<typename Ret_T, typename Self_T, typename Arg1_T, typename Arg2_T, typename Arg3_T, typename Arg4_T, typename Arg5_T, typename Arg6_T, typename Arg7_T>
148
178
  Wrapped_Function * wrap_function(
149
179
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T) const,
150
- Data_Object<Exception_Handler> handler = Rice::Nil);
180
+ Data_Object<Exception_Handler> handler = Rice::Nil,
181
+ Arguments* arguments = 0);
151
182
 
152
183
  // ---------------------------------------------------------------------
153
184
  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>
154
185
  Wrapped_Function * wrap_function(
155
186
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
156
- Data_Object<Exception_Handler> handler = Rice::Nil);
187
+ Data_Object<Exception_Handler> handler = Rice::Nil,
188
+ Arguments* arguments = 0);
157
189
 
158
190
  template<typename Ret_T, typename Self_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>
159
191
  Wrapped_Function * wrap_function(
160
192
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T),
161
- Data_Object<Exception_Handler> handler = Rice::Nil);
193
+ Data_Object<Exception_Handler> handler = Rice::Nil,
194
+ Arguments* arguments = 0);
162
195
 
163
196
  template<typename Ret_T, typename Self_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>
164
197
  Wrapped_Function * wrap_function(
165
198
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T) const,
166
- Data_Object<Exception_Handler> handler = Rice::Nil);
199
+ Data_Object<Exception_Handler> handler = Rice::Nil,
200
+ Arguments* arguments = 0);
167
201
 
168
202
  // ---------------------------------------------------------------------
169
203
  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>
170
204
  Wrapped_Function * wrap_function(
171
205
  Ret_T (*func)(Arg0_T, Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
172
- Data_Object<Exception_Handler> handler = Rice::Nil);
206
+ Data_Object<Exception_Handler> handler = Rice::Nil,
207
+ Arguments* arguments = 0);
173
208
 
174
209
  template<typename Ret_T, typename Self_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>
175
210
  Wrapped_Function * wrap_function(
176
211
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T),
177
- Data_Object<Exception_Handler> handler = Rice::Nil);
212
+ Data_Object<Exception_Handler> handler = Rice::Nil,
213
+ Arguments* arguments = 0);
178
214
 
179
215
  template<typename Ret_T, typename Self_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>
180
216
  Wrapped_Function * wrap_function(
181
217
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T) const,
182
- Data_Object<Exception_Handler> handler = Rice::Nil);
218
+ Data_Object<Exception_Handler> handler = Rice::Nil,
219
+ Arguments* arguments = 0);
183
220
 
184
221
  // ---------------------------------------------------------------------
185
222
  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>
186
223
  Wrapped_Function * wrap_function(
187
224
  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),
188
- Data_Object<Exception_Handler> handler = Rice::Nil);
225
+ Data_Object<Exception_Handler> handler = Rice::Nil,
226
+ Arguments* arguments = 0);
189
227
 
190
228
  template<typename Ret_T, typename Self_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>
191
229
  Wrapped_Function * wrap_function(
192
230
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T),
193
- Data_Object<Exception_Handler> handler = Rice::Nil);
231
+ Data_Object<Exception_Handler> handler = Rice::Nil,
232
+ Arguments* arguments = 0);
194
233
 
195
234
  template<typename Ret_T, typename Self_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>
196
235
  Wrapped_Function * wrap_function(
197
236
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T) const,
198
- Data_Object<Exception_Handler> handler = Rice::Nil);
237
+ Data_Object<Exception_Handler> handler = Rice::Nil,
238
+ Arguments* arguments = 0);
199
239
 
200
240
  // ---------------------------------------------------------------------
201
241
  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>
202
242
  Wrapped_Function * wrap_function(
203
243
  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),
204
- Data_Object<Exception_Handler> handler = Rice::Nil);
244
+ Data_Object<Exception_Handler> handler = Rice::Nil,
245
+ Arguments* arguments = 0);
205
246
 
206
247
  template<typename Ret_T, typename Self_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>
207
248
  Wrapped_Function * wrap_function(
208
249
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T),
209
- Data_Object<Exception_Handler> handler = Rice::Nil);
250
+ Data_Object<Exception_Handler> handler = Rice::Nil,
251
+ Arguments* arguments = 0);
210
252
 
211
253
  template<typename Ret_T, typename Self_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>
212
254
  Wrapped_Function * wrap_function(
213
255
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T) const,
214
- Data_Object<Exception_Handler> handler = Rice::Nil);
256
+ Data_Object<Exception_Handler> handler = Rice::Nil,
257
+ Arguments* arguments = 0);
215
258
 
216
259
  // ---------------------------------------------------------------------
217
260
  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>
218
261
  Wrapped_Function * wrap_function(
219
262
  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),
220
- Data_Object<Exception_Handler> handler = Rice::Nil);
263
+ Data_Object<Exception_Handler> handler = Rice::Nil,
264
+ Arguments* arguments = 0);
221
265
 
222
266
  template<typename Ret_T, typename Self_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>
223
267
  Wrapped_Function * wrap_function(
224
268
  Ret_T (Self_T::*func)(Arg1_T, Arg2_T, Arg3_T, Arg4_T, Arg5_T, Arg6_T, Arg7_T, Arg8_T, Arg9_T, Arg10_T, Arg11_T, Arg12_T),
225
- Data_Object<Exception_Handler> handler = Rice::Nil);
269
+ Data_Object<Exception_Handler> handler = Rice::Nil,
270
+ Arguments* arguments = 0);
226
271
 
227
272
  template<typename Ret_T, typename Self_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>
228
273
  Wrapped_Function * wrap_function(
229
274
  Ret_T (Self_T::*func)(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,
230
- Data_Object<Exception_Handler> handler = Rice::Nil);
275
+ Data_Object<Exception_Handler> handler = Rice::Nil,
276
+ Arguments* arguments = 0);
231
277
 
232
278
  // ---------------------------------------------------------------------
233
279
  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>
234
280
  Wrapped_Function * wrap_function(
235
281
  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),
236
- Data_Object<Exception_Handler> handler = Rice::Nil);
282
+ Data_Object<Exception_Handler> handler = Rice::Nil,
283
+ Arguments* arguments = 0);
237
284
 
238
285
  template<typename Ret_T, typename Self_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>
239
286
  Wrapped_Function * wrap_function(
240
287
  Ret_T (Self_T::*func)(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),
241
- Data_Object<Exception_Handler> handler = Rice::Nil);
288
+ Data_Object<Exception_Handler> handler = Rice::Nil,
289
+ Arguments* arguments = 0);
242
290
 
243
291
  template<typename Ret_T, typename Self_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>
244
292
  Wrapped_Function * wrap_function(
245
293
  Ret_T (Self_T::*func)(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,
246
- Data_Object<Exception_Handler> handler = Rice::Nil);
294
+ Data_Object<Exception_Handler> handler = Rice::Nil,
295
+ Arguments* arguments = 0);
247
296
 
248
297
  // ---------------------------------------------------------------------
249
298
  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>
250
299
  Wrapped_Function * wrap_function(
251
300
  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),
252
- Data_Object<Exception_Handler> handler = Rice::Nil);
301
+ Data_Object<Exception_Handler> handler = Rice::Nil,
302
+ Arguments* arguments = 0);
253
303
 
254
304
  template<typename Ret_T, typename Self_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>
255
305
  Wrapped_Function * wrap_function(
256
306
  Ret_T (Self_T::*func)(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),
257
- Data_Object<Exception_Handler> handler = Rice::Nil);
307
+ Data_Object<Exception_Handler> handler = Rice::Nil,
308
+ Arguments* arguments = 0);
258
309
 
259
310
  template<typename Ret_T, typename Self_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>
260
311
  Wrapped_Function * wrap_function(
261
312
  Ret_T (Self_T::*func)(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) const,
262
- Data_Object<Exception_Handler> handler = Rice::Nil);
313
+ Data_Object<Exception_Handler> handler = Rice::Nil,
314
+ Arguments* arguments = 0);
263
315
 
264
316
  // ---------------------------------------------------------------------
265
317
  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, typename Arg15_T>
266
318
  Wrapped_Function * wrap_function(
267
319
  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, Arg15_T),
268
- Data_Object<Exception_Handler> handler = Rice::Nil);
320
+ Data_Object<Exception_Handler> handler = Rice::Nil,
321
+ Arguments* arguments = 0);
269
322
 
270
323
  template<typename Ret_T, typename Self_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, typename Arg15_T>
271
324
  Wrapped_Function * wrap_function(
272
325
  Ret_T (Self_T::*func)(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, Arg15_T),
273
- Data_Object<Exception_Handler> handler = Rice::Nil);
326
+ Data_Object<Exception_Handler> handler = Rice::Nil,
327
+ Arguments* arguments = 0);
274
328
 
275
329
  template<typename Ret_T, typename Self_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, typename Arg15_T>
276
330
  Wrapped_Function * wrap_function(
277
331
  Ret_T (Self_T::*func)(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, Arg15_T) const,
278
- Data_Object<Exception_Handler> handler = Rice::Nil);
332
+ Data_Object<Exception_Handler> handler = Rice::Nil,
333
+ Arguments* arguments = 0);
279
334
 
280
335
  // ---------------------------------------------------------------------
281
336
  #endif // DOXYGEN