rice 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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