19 #ifndef INCLUDE_RCF_IDL_HPP
20 #define INCLUDE_RCF_IDL_HPP
22 #include <boost/mpl/bool.hpp>
23 #include <boost/mpl/if.hpp>
24 #include <boost/mpl/int.hpp>
26 #include <boost/shared_ptr.hpp>
27 #include <boost/static_assert.hpp>
28 #include <boost/type_traits/is_same.hpp>
30 #include <RCF/ClientStub.hpp>
31 #include <RCF/ClientTransport.hpp>
32 #include <RCF/Config.hpp>
33 #include <RCF/Endpoint.hpp>
34 #include <RCF/Exception.hpp>
35 #include <RCF/Future.hpp>
36 #include <RCF/GetInterfaceName.hpp>
37 #include <RCF/Marshal.hpp>
38 #include <RCF/RcfClient.hpp>
39 #include <RCF/RcfSession.hpp>
40 #include <RCF/ServerStub.hpp>
41 #include <RCF/ThreadLocalData.hpp>
43 #ifndef RCF_EXPORT_INTERFACE
44 #define RCF_EXPORT_INTERFACE
47 #define RCF_BEGIN_INLINE(InterfaceT, Name) RCF_BEGIN_I0_INLINE(InterfaceT, Name)
49 #define RCF_BEGIN_I0_INLINE(InterfaceT, Name) \
50 RCF_BEGIN_IMPL_PRELUDE(InterfaceT, Name) \
51 RCF_BEGIN_IMPL_INHERITED_0(InterfaceT, Name) \
52 RCF_BEGIN_IMPL_POSTLUDE(InterfaceT, Name)
54 #define RCF_BEGIN_I1_INLINE(InterfaceT, Name, InheritT1) \
55 RCF_BEGIN_IMPL_PRELUDE(InterfaceT, Name) \
56 RCF_BEGIN_IMPL_INHERITED_1(InterfaceT, Name, InheritT1) \
57 RCF_BEGIN_IMPL_POSTLUDE(InterfaceT, Name)
59 #define RCF_BEGIN_I2_INLINE(InterfaceT, Name, InheritT1, InheritT2) \
60 RCF_BEGIN_IMPL_PRELUDE(InterfaceT, Name) \
61 RCF_BEGIN_IMPL_INHERITED_2(InterfaceT, Name, InheritT1, InheritT2) \
62 RCF_BEGIN_IMPL_POSTLUDE(InterfaceT, Name)
64 #define RCF_BEGIN_IMPL_PRELUDE(InterfaceT, Name) \
66 template<typename T> \
69 class RCF_EXPORT_INTERFACE InterfaceT \
72 typedef RcfClient<InterfaceT> RcfClientT; \
73 static std::string getInterfaceName() \
75 std::string interfaceName(Name); \
76 if (interfaceName.empty()) \
78 interfaceName = #InterfaceT; \
80 return interfaceName; \
84 #define RCF_BEGIN_IMPL_INHERITED_0(InterfaceT, Name) \
86 class RCF_EXPORT_INTERFACE RcfClient< InterfaceT > : \
87 public ::RCF::I_RcfClient \
90 template<typename DerefPtrT> \
91 void registerInvokeFunctors( \
92 ::RCF::InvokeFunctorMap &invokeFunctorMap, \
95 ::RCF::registerInvokeFunctors( \
100 void setClientStubPtr(::RCF::ClientStubPtr clientStubPtr) \
102 I_RcfClient::setClientStubPtr(clientStubPtr); \
105 #define RCF_BEGIN_IMPL_POSTLUDE(InterfaceT, Name) \
109 I_RcfClient( ::RCF::getInterfaceName( (InterfaceT *) NULL) ) \
113 template<typename DerefPtrT> \
115 ::RCF::ServerBindingPtr serverStubPtr, \
116 DerefPtrT derefPtr, \
119 ::RCF::getInterfaceName( (InterfaceT *) NULL), \
122 serverStubPtr->registerInvokeFunctors(*this, derefPtr); \
126 const ::RCF::Endpoint & endpoint, \
127 const std::string & targetName = "") : \
129 ::RCF::getInterfaceName( (InterfaceT *) NULL), \
136 ::RCF::ClientTransportAutoPtr clientTransportAutoPtr, \
137 const std::string & targetName = "") : \
139 ::RCF::getInterfaceName( (InterfaceT *) NULL), \
140 clientTransportAutoPtr, \
146 const ::RCF::ClientStub & clientStub, \
147 const std::string & targetName = "") : \
149 ::RCF::getInterfaceName( (InterfaceT *) NULL), \
156 const ::RCF::I_RcfClient & rhs) : \
158 ::RCF::getInterfaceName( (InterfaceT *) NULL), \
169 template<typename N, typename T> \
172 ::RCF::RcfSession &, \
175 ::RCF::Exception e(RCF::_RcfError_FnId(N::value)); \
179 const char * getFunctionName(...) \
181 RCF_ASSERT(0 && "getFunctionName() - invalid function id"); \
185 const char * getArity(...) \
190 typedef RcfClient< InterfaceT > ThisT; \
191 typedef ::RCF::Dummy<ThisT> DummyThisT; \
193 friend class ::RCF::StubAccess; \
195 friend ::RCF::default_ RCF_make_next_dispatch_id_func( \
200 typedef InterfaceT Interface;
204 #define RCF_END_INLINE( InterfaceT ) \
207 #define RCF_METHOD_PLACEHOLDER() \
208 RCF_METHOD_PLACEHOLDER_(RCF_MAKE_UNIQUE_ID(PlaceHolder, V0))
210 #define RCF_METHOD_PLACEHOLDER_(id) \
212 RCF_MAKE_NEXT_DISPATCH_ID(id) \
219 #define RCF_BEGIN_DECL RCF_BEGIN_INLINE
220 #define RCF_BEGIN_I0_DECL RCF_BEGIN_I0_INLINE
221 #define RCF_END_DECL RCF_END_INLINE
225 #define RCF_BEGIN_DEF(Interface, Name) \
226 RCF_BEGIN_DEF_(Interface, Name, RCF_PP_CAT(rcf_interface_id_, Interface, _, __LINE__))
228 #define RCF_BEGIN_I0_DEF(Interface, Name) \
229 RCF_BEGIN_DEF_(Interface, Name, RCF_PP_CAT(rcf_interface_id_, Interface, _, __LINE__))
231 #define RCF_BEGIN_DEF_(Interface, Name, interfaceId) \
232 static ::RCF::default_ RCF_interface_id_helper(int *, int *, ...); \
233 static ::RCF::default_ RCF_def_dispatch_id_helper(::RCF::Dummy< RcfClient<Interface> > *, RcfClient<Interface> *, ...); \
234 RCF_ADVANCE_STATIC_ID(interfaceId, RCF_interface_id_helper, int, int, static) \
235 template<typename N> class GeneratorParms; \
237 class GeneratorParms<interfaceId> \
240 typedef Interface InterfaceT; \
241 typedef RcfClient<InterfaceT> RcfClientT; \
244 #define RCF_END_DEF( Interface )
248 #include "RcfMethodGen.hpp"
252 BOOST_STATIC_ASSERT(
sizeof(RCF::defined_) !=
sizeof(RCF::default_));
254 #define RCF_PP_CAT(arg1, arg2, arg3, arg4) BOOST_PP_CAT( arg1, BOOST_PP_CAT( arg2, BOOST_PP_CAT(arg3, arg4) ) )
255 #define RCF_MAKE_UNIQUE_ID(func, sig) RCF_PP_CAT(rcf_unique_id_, func, sig, __LINE__)
257 #define RCF_MAKE_NEXT_DISPATCH_ID(next_dispatch_id) \
258 RCF_ADVANCE_STATIC_ID(next_dispatch_id, RCF_make_next_dispatch_id_func, DummyThisT, ThisT, friend)
260 #if RCF_MAX_METHOD_COUNT <= 35
262 #define RCF_ADVANCE_STATIC_ID(next_static_id, helper_func, T1, T2, friend_or_not) \
264 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
265 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
266 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
267 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
268 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
269 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
270 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
271 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
272 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
273 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
274 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<10> *) 0)) == sizeof(RCF::defined_)) >, \
275 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<11> *) 0)) == sizeof(RCF::defined_)) >, \
276 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<12> *) 0)) == sizeof(RCF::defined_)) >, \
277 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<13> *) 0)) == sizeof(RCF::defined_)) >, \
278 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<14> *) 0)) == sizeof(RCF::defined_)) >, \
279 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<15> *) 0)) == sizeof(RCF::defined_)) >, \
280 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<16> *) 0)) == sizeof(RCF::defined_)) >, \
281 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<17> *) 0)) == sizeof(RCF::defined_)) >, \
282 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<18> *) 0)) == sizeof(RCF::defined_)) >, \
283 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<19> *) 0)) == sizeof(RCF::defined_)) >, \
284 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<20> *) 0)) == sizeof(RCF::defined_)) >, \
285 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<21> *) 0)) == sizeof(RCF::defined_)) >, \
286 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<22> *) 0)) == sizeof(RCF::defined_)) >, \
287 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<23> *) 0)) == sizeof(RCF::defined_)) >, \
288 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<24> *) 0)) == sizeof(RCF::defined_)) >, \
289 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<25> *) 0)) == sizeof(RCF::defined_)) >, \
290 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<26> *) 0)) == sizeof(RCF::defined_)) >, \
291 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<27> *) 0)) == sizeof(RCF::defined_)) >, \
292 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<28> *) 0)) == sizeof(RCF::defined_)) >, \
293 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<29> *) 0)) == sizeof(RCF::defined_)) >, \
294 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<30> *) 0)) == sizeof(RCF::defined_)) >, \
295 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<31> *) 0)) == sizeof(RCF::defined_)) >, \
296 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<32> *) 0)) == sizeof(RCF::defined_)) >, \
297 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<33> *) 0)) == sizeof(RCF::defined_)) >, \
298 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<34> *) 0)) == sizeof(RCF::defined_)) >, \
299 boost::mpl::int_<35>, \
300 boost::mpl::int_<34> >::type, \
301 boost::mpl::int_<33> >::type, \
302 boost::mpl::int_<32> >::type, \
303 boost::mpl::int_<31> >::type, \
304 boost::mpl::int_<30> >::type, \
305 boost::mpl::int_<29> >::type, \
306 boost::mpl::int_<28> >::type, \
307 boost::mpl::int_<27> >::type, \
308 boost::mpl::int_<26> >::type, \
309 boost::mpl::int_<25> >::type, \
310 boost::mpl::int_<24> >::type, \
311 boost::mpl::int_<23> >::type, \
312 boost::mpl::int_<22> >::type, \
313 boost::mpl::int_<21> >::type, \
314 boost::mpl::int_<20> >::type, \
315 boost::mpl::int_<19> >::type, \
316 boost::mpl::int_<18> >::type, \
317 boost::mpl::int_<17> >::type, \
318 boost::mpl::int_<16> >::type, \
319 boost::mpl::int_<15> >::type, \
320 boost::mpl::int_<14> >::type, \
321 boost::mpl::int_<13> >::type, \
322 boost::mpl::int_<12> >::type, \
323 boost::mpl::int_<11> >::type, \
324 boost::mpl::int_<10> >::type, \
325 boost::mpl::int_< 9> >::type, \
326 boost::mpl::int_< 8> >::type, \
327 boost::mpl::int_< 7> >::type, \
328 boost::mpl::int_< 6> >::type, \
329 boost::mpl::int_< 5> >::type, \
330 boost::mpl::int_< 4> >::type, \
331 boost::mpl::int_< 3> >::type, \
332 boost::mpl::int_< 2> >::type, \
333 boost::mpl::int_< 1> >::type, \
334 boost::mpl::int_< 0> >::type next_static_id; \
335 friend_or_not RCF::defined_ helper_func(T1 *, T2 *, next_static_id *);
338 #define RCF_CURRENT_STATIC_ID(current_static_id, helper_func, T1, T2) \
340 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
341 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
342 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
343 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
344 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
345 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
346 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
347 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
348 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
349 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
350 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<10> *) 0)) == sizeof(RCF::defined_)) >, \
351 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<11> *) 0)) == sizeof(RCF::defined_)) >, \
352 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<12> *) 0)) == sizeof(RCF::defined_)) >, \
353 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<13> *) 0)) == sizeof(RCF::defined_)) >, \
354 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<14> *) 0)) == sizeof(RCF::defined_)) >, \
355 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<15> *) 0)) == sizeof(RCF::defined_)) >, \
356 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<16> *) 0)) == sizeof(RCF::defined_)) >, \
357 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<17> *) 0)) == sizeof(RCF::defined_)) >, \
358 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<18> *) 0)) == sizeof(RCF::defined_)) >, \
359 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<19> *) 0)) == sizeof(RCF::defined_)) >, \
360 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<20> *) 0)) == sizeof(RCF::defined_)) >, \
361 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<21> *) 0)) == sizeof(RCF::defined_)) >, \
362 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<22> *) 0)) == sizeof(RCF::defined_)) >, \
363 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<23> *) 0)) == sizeof(RCF::defined_)) >, \
364 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<24> *) 0)) == sizeof(RCF::defined_)) >, \
365 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<25> *) 0)) == sizeof(RCF::defined_)) >, \
366 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<26> *) 0)) == sizeof(RCF::defined_)) >, \
367 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<27> *) 0)) == sizeof(RCF::defined_)) >, \
368 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<28> *) 0)) == sizeof(RCF::defined_)) >, \
369 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<29> *) 0)) == sizeof(RCF::defined_)) >, \
370 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<30> *) 0)) == sizeof(RCF::defined_)) >, \
371 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<31> *) 0)) == sizeof(RCF::defined_)) >, \
372 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<32> *) 0)) == sizeof(RCF::defined_)) >, \
373 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<33> *) 0)) == sizeof(RCF::defined_)) >, \
374 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<34> *) 0)) == sizeof(RCF::defined_)) >, \
375 boost::mpl::int_<34>, \
376 boost::mpl::int_<33> >::type, \
377 boost::mpl::int_<32> >::type, \
378 boost::mpl::int_<31> >::type, \
379 boost::mpl::int_<30> >::type, \
380 boost::mpl::int_<29> >::type, \
381 boost::mpl::int_<28> >::type, \
382 boost::mpl::int_<27> >::type, \
383 boost::mpl::int_<26> >::type, \
384 boost::mpl::int_<25> >::type, \
385 boost::mpl::int_<24> >::type, \
386 boost::mpl::int_<23> >::type, \
387 boost::mpl::int_<22> >::type, \
388 boost::mpl::int_<21> >::type, \
389 boost::mpl::int_<20> >::type, \
390 boost::mpl::int_<19> >::type, \
391 boost::mpl::int_<18> >::type, \
392 boost::mpl::int_<17> >::type, \
393 boost::mpl::int_<16> >::type, \
394 boost::mpl::int_<15> >::type, \
395 boost::mpl::int_<14> >::type, \
396 boost::mpl::int_<13> >::type, \
397 boost::mpl::int_<12> >::type, \
398 boost::mpl::int_<11> >::type, \
399 boost::mpl::int_<10> >::type, \
400 boost::mpl::int_< 9> >::type, \
401 boost::mpl::int_< 8> >::type, \
402 boost::mpl::int_< 7> >::type, \
403 boost::mpl::int_< 6> >::type, \
404 boost::mpl::int_< 5> >::type, \
405 boost::mpl::int_< 4> >::type, \
406 boost::mpl::int_< 3> >::type, \
407 boost::mpl::int_< 2> >::type, \
408 boost::mpl::int_< 1> >::type, \
409 boost::mpl::int_< 0> >::type, \
410 boost::mpl::int_<-1> >::type current_static_id;
413 #elif RCF_MAX_METHOD_COUNT <= 100
415 #define RCF_ADVANCE_STATIC_ID(next_static_id, helper_func, T1, T2, friend_or_not) \
417 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
418 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
419 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
420 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
421 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
422 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
423 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
424 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
425 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
426 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
427 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<10> *) 0)) == sizeof(RCF::defined_)) >, \
428 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<11> *) 0)) == sizeof(RCF::defined_)) >, \
429 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<12> *) 0)) == sizeof(RCF::defined_)) >, \
430 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<13> *) 0)) == sizeof(RCF::defined_)) >, \
431 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<14> *) 0)) == sizeof(RCF::defined_)) >, \
432 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<15> *) 0)) == sizeof(RCF::defined_)) >, \
433 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<16> *) 0)) == sizeof(RCF::defined_)) >, \
434 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<17> *) 0)) == sizeof(RCF::defined_)) >, \
435 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<18> *) 0)) == sizeof(RCF::defined_)) >, \
436 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<19> *) 0)) == sizeof(RCF::defined_)) >, \
437 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<20> *) 0)) == sizeof(RCF::defined_)) >, \
438 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<21> *) 0)) == sizeof(RCF::defined_)) >, \
439 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<22> *) 0)) == sizeof(RCF::defined_)) >, \
440 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<23> *) 0)) == sizeof(RCF::defined_)) >, \
441 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<24> *) 0)) == sizeof(RCF::defined_)) >, \
442 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<25> *) 0)) == sizeof(RCF::defined_)) >, \
443 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<26> *) 0)) == sizeof(RCF::defined_)) >, \
444 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<27> *) 0)) == sizeof(RCF::defined_)) >, \
445 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<28> *) 0)) == sizeof(RCF::defined_)) >, \
446 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<29> *) 0)) == sizeof(RCF::defined_)) >, \
447 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<30> *) 0)) == sizeof(RCF::defined_)) >, \
448 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<31> *) 0)) == sizeof(RCF::defined_)) >, \
449 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<32> *) 0)) == sizeof(RCF::defined_)) >, \
450 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<33> *) 0)) == sizeof(RCF::defined_)) >, \
451 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<34> *) 0)) == sizeof(RCF::defined_)) >, \
452 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<35> *) 0)) == sizeof(RCF::defined_)) >, \
453 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<36> *) 0)) == sizeof(RCF::defined_)) >, \
454 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<37> *) 0)) == sizeof(RCF::defined_)) >, \
455 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<38> *) 0)) == sizeof(RCF::defined_)) >, \
456 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<39> *) 0)) == sizeof(RCF::defined_)) >, \
457 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<40> *) 0)) == sizeof(RCF::defined_)) >, \
458 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<41> *) 0)) == sizeof(RCF::defined_)) >, \
459 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<42> *) 0)) == sizeof(RCF::defined_)) >, \
460 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<43> *) 0)) == sizeof(RCF::defined_)) >, \
461 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<44> *) 0)) == sizeof(RCF::defined_)) >, \
462 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<45> *) 0)) == sizeof(RCF::defined_)) >, \
463 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<46> *) 0)) == sizeof(RCF::defined_)) >, \
464 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<47> *) 0)) == sizeof(RCF::defined_)) >, \
465 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<48> *) 0)) == sizeof(RCF::defined_)) >, \
466 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<49> *) 0)) == sizeof(RCF::defined_)) >, \
467 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<50> *) 0)) == sizeof(RCF::defined_)) >, \
468 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<51> *) 0)) == sizeof(RCF::defined_)) >, \
469 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<52> *) 0)) == sizeof(RCF::defined_)) >, \
470 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<53> *) 0)) == sizeof(RCF::defined_)) >, \
471 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<54> *) 0)) == sizeof(RCF::defined_)) >, \
472 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<55> *) 0)) == sizeof(RCF::defined_)) >, \
473 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<56> *) 0)) == sizeof(RCF::defined_)) >, \
474 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<57> *) 0)) == sizeof(RCF::defined_)) >, \
475 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<58> *) 0)) == sizeof(RCF::defined_)) >, \
476 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<59> *) 0)) == sizeof(RCF::defined_)) >, \
477 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<60> *) 0)) == sizeof(RCF::defined_)) >, \
478 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<61> *) 0)) == sizeof(RCF::defined_)) >, \
479 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<62> *) 0)) == sizeof(RCF::defined_)) >, \
480 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<63> *) 0)) == sizeof(RCF::defined_)) >, \
481 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<64> *) 0)) == sizeof(RCF::defined_)) >, \
482 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<65> *) 0)) == sizeof(RCF::defined_)) >, \
483 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<66> *) 0)) == sizeof(RCF::defined_)) >, \
484 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<67> *) 0)) == sizeof(RCF::defined_)) >, \
485 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<68> *) 0)) == sizeof(RCF::defined_)) >, \
486 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<69> *) 0)) == sizeof(RCF::defined_)) >, \
487 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<70> *) 0)) == sizeof(RCF::defined_)) >, \
488 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<71> *) 0)) == sizeof(RCF::defined_)) >, \
489 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<72> *) 0)) == sizeof(RCF::defined_)) >, \
490 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<73> *) 0)) == sizeof(RCF::defined_)) >, \
491 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<74> *) 0)) == sizeof(RCF::defined_)) >, \
492 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<75> *) 0)) == sizeof(RCF::defined_)) >, \
493 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<76> *) 0)) == sizeof(RCF::defined_)) >, \
494 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<77> *) 0)) == sizeof(RCF::defined_)) >, \
495 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<78> *) 0)) == sizeof(RCF::defined_)) >, \
496 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<79> *) 0)) == sizeof(RCF::defined_)) >, \
497 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<80> *) 0)) == sizeof(RCF::defined_)) >, \
498 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<81> *) 0)) == sizeof(RCF::defined_)) >, \
499 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<82> *) 0)) == sizeof(RCF::defined_)) >, \
500 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<83> *) 0)) == sizeof(RCF::defined_)) >, \
501 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<84> *) 0)) == sizeof(RCF::defined_)) >, \
502 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<85> *) 0)) == sizeof(RCF::defined_)) >, \
503 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<86> *) 0)) == sizeof(RCF::defined_)) >, \
504 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<87> *) 0)) == sizeof(RCF::defined_)) >, \
505 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<88> *) 0)) == sizeof(RCF::defined_)) >, \
506 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<89> *) 0)) == sizeof(RCF::defined_)) >, \
507 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<90> *) 0)) == sizeof(RCF::defined_)) >, \
508 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<91> *) 0)) == sizeof(RCF::defined_)) >, \
509 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<92> *) 0)) == sizeof(RCF::defined_)) >, \
510 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<93> *) 0)) == sizeof(RCF::defined_)) >, \
511 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<94> *) 0)) == sizeof(RCF::defined_)) >, \
512 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<95> *) 0)) == sizeof(RCF::defined_)) >, \
513 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<96> *) 0)) == sizeof(RCF::defined_)) >, \
514 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<97> *) 0)) == sizeof(RCF::defined_)) >, \
515 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<98> *) 0)) == sizeof(RCF::defined_)) >, \
516 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<99> *) 0)) == sizeof(RCF::defined_)) >, \
517 boost::mpl::int_<100>, \
518 boost::mpl::int_<99> >::type, \
519 boost::mpl::int_<98> >::type, \
520 boost::mpl::int_<97> >::type, \
521 boost::mpl::int_<96> >::type, \
522 boost::mpl::int_<95> >::type, \
523 boost::mpl::int_<94> >::type, \
524 boost::mpl::int_<93> >::type, \
525 boost::mpl::int_<92> >::type, \
526 boost::mpl::int_<91> >::type, \
527 boost::mpl::int_<90> >::type, \
528 boost::mpl::int_<89> >::type, \
529 boost::mpl::int_<88> >::type, \
530 boost::mpl::int_<87> >::type, \
531 boost::mpl::int_<86> >::type, \
532 boost::mpl::int_<85> >::type, \
533 boost::mpl::int_<84> >::type, \
534 boost::mpl::int_<83> >::type, \
535 boost::mpl::int_<82> >::type, \
536 boost::mpl::int_<81> >::type, \
537 boost::mpl::int_<80> >::type, \
538 boost::mpl::int_<79> >::type, \
539 boost::mpl::int_<78> >::type, \
540 boost::mpl::int_<77> >::type, \
541 boost::mpl::int_<76> >::type, \
542 boost::mpl::int_<75> >::type, \
543 boost::mpl::int_<74> >::type, \
544 boost::mpl::int_<73> >::type, \
545 boost::mpl::int_<72> >::type, \
546 boost::mpl::int_<71> >::type, \
547 boost::mpl::int_<70> >::type, \
548 boost::mpl::int_<69> >::type, \
549 boost::mpl::int_<68> >::type, \
550 boost::mpl::int_<67> >::type, \
551 boost::mpl::int_<66> >::type, \
552 boost::mpl::int_<65> >::type, \
553 boost::mpl::int_<64> >::type, \
554 boost::mpl::int_<63> >::type, \
555 boost::mpl::int_<62> >::type, \
556 boost::mpl::int_<61> >::type, \
557 boost::mpl::int_<60> >::type, \
558 boost::mpl::int_<59> >::type, \
559 boost::mpl::int_<58> >::type, \
560 boost::mpl::int_<57> >::type, \
561 boost::mpl::int_<56> >::type, \
562 boost::mpl::int_<55> >::type, \
563 boost::mpl::int_<54> >::type, \
564 boost::mpl::int_<53> >::type, \
565 boost::mpl::int_<52> >::type, \
566 boost::mpl::int_<51> >::type, \
567 boost::mpl::int_<50> >::type, \
568 boost::mpl::int_<49> >::type, \
569 boost::mpl::int_<48> >::type, \
570 boost::mpl::int_<47> >::type, \
571 boost::mpl::int_<46> >::type, \
572 boost::mpl::int_<45> >::type, \
573 boost::mpl::int_<44> >::type, \
574 boost::mpl::int_<43> >::type, \
575 boost::mpl::int_<42> >::type, \
576 boost::mpl::int_<41> >::type, \
577 boost::mpl::int_<40> >::type, \
578 boost::mpl::int_<39> >::type, \
579 boost::mpl::int_<38> >::type, \
580 boost::mpl::int_<37> >::type, \
581 boost::mpl::int_<36> >::type, \
582 boost::mpl::int_<35> >::type, \
583 boost::mpl::int_<34> >::type, \
584 boost::mpl::int_<33> >::type, \
585 boost::mpl::int_<32> >::type, \
586 boost::mpl::int_<31> >::type, \
587 boost::mpl::int_<30> >::type, \
588 boost::mpl::int_<29> >::type, \
589 boost::mpl::int_<28> >::type, \
590 boost::mpl::int_<27> >::type, \
591 boost::mpl::int_<26> >::type, \
592 boost::mpl::int_<25> >::type, \
593 boost::mpl::int_<24> >::type, \
594 boost::mpl::int_<23> >::type, \
595 boost::mpl::int_<22> >::type, \
596 boost::mpl::int_<21> >::type, \
597 boost::mpl::int_<20> >::type, \
598 boost::mpl::int_<19> >::type, \
599 boost::mpl::int_<18> >::type, \
600 boost::mpl::int_<17> >::type, \
601 boost::mpl::int_<16> >::type, \
602 boost::mpl::int_<15> >::type, \
603 boost::mpl::int_<14> >::type, \
604 boost::mpl::int_<13> >::type, \
605 boost::mpl::int_<12> >::type, \
606 boost::mpl::int_<11> >::type, \
607 boost::mpl::int_<10> >::type, \
608 boost::mpl::int_< 9> >::type, \
609 boost::mpl::int_< 8> >::type, \
610 boost::mpl::int_< 7> >::type, \
611 boost::mpl::int_< 6> >::type, \
612 boost::mpl::int_< 5> >::type, \
613 boost::mpl::int_< 4> >::type, \
614 boost::mpl::int_< 3> >::type, \
615 boost::mpl::int_< 2> >::type, \
616 boost::mpl::int_< 1> >::type, \
617 boost::mpl::int_< 0> >::type next_static_id; \
618 friend_or_not RCF::defined_ helper_func(T1 *, T2 *, next_static_id *);
621 #define RCF_CURRENT_STATIC_ID(current_static_id, helper_func, T1, T2) \
623 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
624 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
625 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
626 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
627 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
628 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
629 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
630 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
631 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
632 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
633 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<10> *) 0)) == sizeof(RCF::defined_)) >, \
634 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<11> *) 0)) == sizeof(RCF::defined_)) >, \
635 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<12> *) 0)) == sizeof(RCF::defined_)) >, \
636 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<13> *) 0)) == sizeof(RCF::defined_)) >, \
637 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<14> *) 0)) == sizeof(RCF::defined_)) >, \
638 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<15> *) 0)) == sizeof(RCF::defined_)) >, \
639 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<16> *) 0)) == sizeof(RCF::defined_)) >, \
640 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<17> *) 0)) == sizeof(RCF::defined_)) >, \
641 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<18> *) 0)) == sizeof(RCF::defined_)) >, \
642 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<19> *) 0)) == sizeof(RCF::defined_)) >, \
643 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<20> *) 0)) == sizeof(RCF::defined_)) >, \
644 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<21> *) 0)) == sizeof(RCF::defined_)) >, \
645 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<22> *) 0)) == sizeof(RCF::defined_)) >, \
646 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<23> *) 0)) == sizeof(RCF::defined_)) >, \
647 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<24> *) 0)) == sizeof(RCF::defined_)) >, \
648 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<25> *) 0)) == sizeof(RCF::defined_)) >, \
649 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<26> *) 0)) == sizeof(RCF::defined_)) >, \
650 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<27> *) 0)) == sizeof(RCF::defined_)) >, \
651 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<28> *) 0)) == sizeof(RCF::defined_)) >, \
652 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<29> *) 0)) == sizeof(RCF::defined_)) >, \
653 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<30> *) 0)) == sizeof(RCF::defined_)) >, \
654 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<31> *) 0)) == sizeof(RCF::defined_)) >, \
655 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<32> *) 0)) == sizeof(RCF::defined_)) >, \
656 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<33> *) 0)) == sizeof(RCF::defined_)) >, \
657 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<34> *) 0)) == sizeof(RCF::defined_)) >, \
658 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<35> *) 0)) == sizeof(RCF::defined_)) >, \
659 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<36> *) 0)) == sizeof(RCF::defined_)) >, \
660 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<37> *) 0)) == sizeof(RCF::defined_)) >, \
661 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<38> *) 0)) == sizeof(RCF::defined_)) >, \
662 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<39> *) 0)) == sizeof(RCF::defined_)) >, \
663 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<40> *) 0)) == sizeof(RCF::defined_)) >, \
664 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<41> *) 0)) == sizeof(RCF::defined_)) >, \
665 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<42> *) 0)) == sizeof(RCF::defined_)) >, \
666 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<43> *) 0)) == sizeof(RCF::defined_)) >, \
667 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<44> *) 0)) == sizeof(RCF::defined_)) >, \
668 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<45> *) 0)) == sizeof(RCF::defined_)) >, \
669 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<46> *) 0)) == sizeof(RCF::defined_)) >, \
670 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<47> *) 0)) == sizeof(RCF::defined_)) >, \
671 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<48> *) 0)) == sizeof(RCF::defined_)) >, \
672 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<49> *) 0)) == sizeof(RCF::defined_)) >, \
673 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<50> *) 0)) == sizeof(RCF::defined_)) >, \
674 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<51> *) 0)) == sizeof(RCF::defined_)) >, \
675 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<52> *) 0)) == sizeof(RCF::defined_)) >, \
676 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<53> *) 0)) == sizeof(RCF::defined_)) >, \
677 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<54> *) 0)) == sizeof(RCF::defined_)) >, \
678 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<55> *) 0)) == sizeof(RCF::defined_)) >, \
679 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<56> *) 0)) == sizeof(RCF::defined_)) >, \
680 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<57> *) 0)) == sizeof(RCF::defined_)) >, \
681 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<58> *) 0)) == sizeof(RCF::defined_)) >, \
682 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<59> *) 0)) == sizeof(RCF::defined_)) >, \
683 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<60> *) 0)) == sizeof(RCF::defined_)) >, \
684 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<61> *) 0)) == sizeof(RCF::defined_)) >, \
685 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<62> *) 0)) == sizeof(RCF::defined_)) >, \
686 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<63> *) 0)) == sizeof(RCF::defined_)) >, \
687 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<64> *) 0)) == sizeof(RCF::defined_)) >, \
688 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<65> *) 0)) == sizeof(RCF::defined_)) >, \
689 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<66> *) 0)) == sizeof(RCF::defined_)) >, \
690 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<67> *) 0)) == sizeof(RCF::defined_)) >, \
691 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<68> *) 0)) == sizeof(RCF::defined_)) >, \
692 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<69> *) 0)) == sizeof(RCF::defined_)) >, \
693 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<70> *) 0)) == sizeof(RCF::defined_)) >, \
694 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<71> *) 0)) == sizeof(RCF::defined_)) >, \
695 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<72> *) 0)) == sizeof(RCF::defined_)) >, \
696 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<73> *) 0)) == sizeof(RCF::defined_)) >, \
697 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<74> *) 0)) == sizeof(RCF::defined_)) >, \
698 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<75> *) 0)) == sizeof(RCF::defined_)) >, \
699 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<76> *) 0)) == sizeof(RCF::defined_)) >, \
700 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<77> *) 0)) == sizeof(RCF::defined_)) >, \
701 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<78> *) 0)) == sizeof(RCF::defined_)) >, \
702 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<79> *) 0)) == sizeof(RCF::defined_)) >, \
703 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<80> *) 0)) == sizeof(RCF::defined_)) >, \
704 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<81> *) 0)) == sizeof(RCF::defined_)) >, \
705 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<82> *) 0)) == sizeof(RCF::defined_)) >, \
706 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<83> *) 0)) == sizeof(RCF::defined_)) >, \
707 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<84> *) 0)) == sizeof(RCF::defined_)) >, \
708 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<85> *) 0)) == sizeof(RCF::defined_)) >, \
709 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<86> *) 0)) == sizeof(RCF::defined_)) >, \
710 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<87> *) 0)) == sizeof(RCF::defined_)) >, \
711 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<88> *) 0)) == sizeof(RCF::defined_)) >, \
712 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<89> *) 0)) == sizeof(RCF::defined_)) >, \
713 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<90> *) 0)) == sizeof(RCF::defined_)) >, \
714 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<91> *) 0)) == sizeof(RCF::defined_)) >, \
715 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<92> *) 0)) == sizeof(RCF::defined_)) >, \
716 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<93> *) 0)) == sizeof(RCF::defined_)) >, \
717 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<94> *) 0)) == sizeof(RCF::defined_)) >, \
718 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<95> *) 0)) == sizeof(RCF::defined_)) >, \
719 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<96> *) 0)) == sizeof(RCF::defined_)) >, \
720 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<97> *) 0)) == sizeof(RCF::defined_)) >, \
721 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<98> *) 0)) == sizeof(RCF::defined_)) >, \
722 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<99> *) 0)) == sizeof(RCF::defined_)) >, \
723 boost::mpl::int_<99>, \
724 boost::mpl::int_<98> >::type, \
725 boost::mpl::int_<97> >::type, \
726 boost::mpl::int_<96> >::type, \
727 boost::mpl::int_<95> >::type, \
728 boost::mpl::int_<94> >::type, \
729 boost::mpl::int_<93> >::type, \
730 boost::mpl::int_<92> >::type, \
731 boost::mpl::int_<91> >::type, \
732 boost::mpl::int_<90> >::type, \
733 boost::mpl::int_<89> >::type, \
734 boost::mpl::int_<88> >::type, \
735 boost::mpl::int_<87> >::type, \
736 boost::mpl::int_<86> >::type, \
737 boost::mpl::int_<85> >::type, \
738 boost::mpl::int_<84> >::type, \
739 boost::mpl::int_<83> >::type, \
740 boost::mpl::int_<82> >::type, \
741 boost::mpl::int_<81> >::type, \
742 boost::mpl::int_<80> >::type, \
743 boost::mpl::int_<79> >::type, \
744 boost::mpl::int_<78> >::type, \
745 boost::mpl::int_<77> >::type, \
746 boost::mpl::int_<76> >::type, \
747 boost::mpl::int_<75> >::type, \
748 boost::mpl::int_<74> >::type, \
749 boost::mpl::int_<73> >::type, \
750 boost::mpl::int_<72> >::type, \
751 boost::mpl::int_<71> >::type, \
752 boost::mpl::int_<70> >::type, \
753 boost::mpl::int_<69> >::type, \
754 boost::mpl::int_<68> >::type, \
755 boost::mpl::int_<67> >::type, \
756 boost::mpl::int_<66> >::type, \
757 boost::mpl::int_<65> >::type, \
758 boost::mpl::int_<64> >::type, \
759 boost::mpl::int_<63> >::type, \
760 boost::mpl::int_<62> >::type, \
761 boost::mpl::int_<61> >::type, \
762 boost::mpl::int_<60> >::type, \
763 boost::mpl::int_<59> >::type, \
764 boost::mpl::int_<58> >::type, \
765 boost::mpl::int_<57> >::type, \
766 boost::mpl::int_<56> >::type, \
767 boost::mpl::int_<55> >::type, \
768 boost::mpl::int_<54> >::type, \
769 boost::mpl::int_<53> >::type, \
770 boost::mpl::int_<52> >::type, \
771 boost::mpl::int_<51> >::type, \
772 boost::mpl::int_<50> >::type, \
773 boost::mpl::int_<49> >::type, \
774 boost::mpl::int_<48> >::type, \
775 boost::mpl::int_<47> >::type, \
776 boost::mpl::int_<46> >::type, \
777 boost::mpl::int_<45> >::type, \
778 boost::mpl::int_<44> >::type, \
779 boost::mpl::int_<43> >::type, \
780 boost::mpl::int_<42> >::type, \
781 boost::mpl::int_<41> >::type, \
782 boost::mpl::int_<40> >::type, \
783 boost::mpl::int_<39> >::type, \
784 boost::mpl::int_<38> >::type, \
785 boost::mpl::int_<37> >::type, \
786 boost::mpl::int_<36> >::type, \
787 boost::mpl::int_<35> >::type, \
788 boost::mpl::int_<34> >::type, \
789 boost::mpl::int_<33> >::type, \
790 boost::mpl::int_<32> >::type, \
791 boost::mpl::int_<31> >::type, \
792 boost::mpl::int_<30> >::type, \
793 boost::mpl::int_<29> >::type, \
794 boost::mpl::int_<28> >::type, \
795 boost::mpl::int_<27> >::type, \
796 boost::mpl::int_<26> >::type, \
797 boost::mpl::int_<25> >::type, \
798 boost::mpl::int_<24> >::type, \
799 boost::mpl::int_<23> >::type, \
800 boost::mpl::int_<22> >::type, \
801 boost::mpl::int_<21> >::type, \
802 boost::mpl::int_<20> >::type, \
803 boost::mpl::int_<19> >::type, \
804 boost::mpl::int_<18> >::type, \
805 boost::mpl::int_<17> >::type, \
806 boost::mpl::int_<16> >::type, \
807 boost::mpl::int_<15> >::type, \
808 boost::mpl::int_<14> >::type, \
809 boost::mpl::int_<13> >::type, \
810 boost::mpl::int_<12> >::type, \
811 boost::mpl::int_<11> >::type, \
812 boost::mpl::int_<10> >::type, \
813 boost::mpl::int_< 9> >::type, \
814 boost::mpl::int_< 8> >::type, \
815 boost::mpl::int_< 7> >::type, \
816 boost::mpl::int_< 6> >::type, \
817 boost::mpl::int_< 5> >::type, \
818 boost::mpl::int_< 4> >::type, \
819 boost::mpl::int_< 3> >::type, \
820 boost::mpl::int_< 2> >::type, \
821 boost::mpl::int_< 1> >::type, \
822 boost::mpl::int_< 0> >::type, \
823 boost::mpl::int_<-1> >::type current_static_id;
825 #elif RCF_MAX_METHOD_COUNT <= 200
827 #define RCF_ADVANCE_STATIC_ID(next_static_id, helper_func, T1, T2, friend_or_not) \
829 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
830 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
831 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
832 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
833 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
834 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
835 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
836 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
837 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
838 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
839 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 10> *) 0)) == sizeof(RCF::defined_)) >, \
840 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 11> *) 0)) == sizeof(RCF::defined_)) >, \
841 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 12> *) 0)) == sizeof(RCF::defined_)) >, \
842 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 13> *) 0)) == sizeof(RCF::defined_)) >, \
843 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 14> *) 0)) == sizeof(RCF::defined_)) >, \
844 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 15> *) 0)) == sizeof(RCF::defined_)) >, \
845 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 16> *) 0)) == sizeof(RCF::defined_)) >, \
846 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 17> *) 0)) == sizeof(RCF::defined_)) >, \
847 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 18> *) 0)) == sizeof(RCF::defined_)) >, \
848 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 19> *) 0)) == sizeof(RCF::defined_)) >, \
849 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 20> *) 0)) == sizeof(RCF::defined_)) >, \
850 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 21> *) 0)) == sizeof(RCF::defined_)) >, \
851 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 22> *) 0)) == sizeof(RCF::defined_)) >, \
852 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 23> *) 0)) == sizeof(RCF::defined_)) >, \
853 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 24> *) 0)) == sizeof(RCF::defined_)) >, \
854 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 25> *) 0)) == sizeof(RCF::defined_)) >, \
855 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 26> *) 0)) == sizeof(RCF::defined_)) >, \
856 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 27> *) 0)) == sizeof(RCF::defined_)) >, \
857 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 28> *) 0)) == sizeof(RCF::defined_)) >, \
858 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 29> *) 0)) == sizeof(RCF::defined_)) >, \
859 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 30> *) 0)) == sizeof(RCF::defined_)) >, \
860 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 31> *) 0)) == sizeof(RCF::defined_)) >, \
861 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 32> *) 0)) == sizeof(RCF::defined_)) >, \
862 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 33> *) 0)) == sizeof(RCF::defined_)) >, \
863 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 34> *) 0)) == sizeof(RCF::defined_)) >, \
864 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 35> *) 0)) == sizeof(RCF::defined_)) >, \
865 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 36> *) 0)) == sizeof(RCF::defined_)) >, \
866 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 37> *) 0)) == sizeof(RCF::defined_)) >, \
867 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 38> *) 0)) == sizeof(RCF::defined_)) >, \
868 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 39> *) 0)) == sizeof(RCF::defined_)) >, \
869 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 40> *) 0)) == sizeof(RCF::defined_)) >, \
870 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 41> *) 0)) == sizeof(RCF::defined_)) >, \
871 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 42> *) 0)) == sizeof(RCF::defined_)) >, \
872 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 43> *) 0)) == sizeof(RCF::defined_)) >, \
873 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 44> *) 0)) == sizeof(RCF::defined_)) >, \
874 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 45> *) 0)) == sizeof(RCF::defined_)) >, \
875 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 46> *) 0)) == sizeof(RCF::defined_)) >, \
876 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 47> *) 0)) == sizeof(RCF::defined_)) >, \
877 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 48> *) 0)) == sizeof(RCF::defined_)) >, \
878 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 49> *) 0)) == sizeof(RCF::defined_)) >, \
879 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 50> *) 0)) == sizeof(RCF::defined_)) >, \
880 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 51> *) 0)) == sizeof(RCF::defined_)) >, \
881 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 52> *) 0)) == sizeof(RCF::defined_)) >, \
882 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 53> *) 0)) == sizeof(RCF::defined_)) >, \
883 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 54> *) 0)) == sizeof(RCF::defined_)) >, \
884 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 55> *) 0)) == sizeof(RCF::defined_)) >, \
885 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 56> *) 0)) == sizeof(RCF::defined_)) >, \
886 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 57> *) 0)) == sizeof(RCF::defined_)) >, \
887 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 58> *) 0)) == sizeof(RCF::defined_)) >, \
888 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 59> *) 0)) == sizeof(RCF::defined_)) >, \
889 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 60> *) 0)) == sizeof(RCF::defined_)) >, \
890 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 61> *) 0)) == sizeof(RCF::defined_)) >, \
891 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 62> *) 0)) == sizeof(RCF::defined_)) >, \
892 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 63> *) 0)) == sizeof(RCF::defined_)) >, \
893 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 64> *) 0)) == sizeof(RCF::defined_)) >, \
894 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 65> *) 0)) == sizeof(RCF::defined_)) >, \
895 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 66> *) 0)) == sizeof(RCF::defined_)) >, \
896 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 67> *) 0)) == sizeof(RCF::defined_)) >, \
897 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 68> *) 0)) == sizeof(RCF::defined_)) >, \
898 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 69> *) 0)) == sizeof(RCF::defined_)) >, \
899 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 70> *) 0)) == sizeof(RCF::defined_)) >, \
900 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 71> *) 0)) == sizeof(RCF::defined_)) >, \
901 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 72> *) 0)) == sizeof(RCF::defined_)) >, \
902 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 73> *) 0)) == sizeof(RCF::defined_)) >, \
903 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 74> *) 0)) == sizeof(RCF::defined_)) >, \
904 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 75> *) 0)) == sizeof(RCF::defined_)) >, \
905 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 76> *) 0)) == sizeof(RCF::defined_)) >, \
906 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 77> *) 0)) == sizeof(RCF::defined_)) >, \
907 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 78> *) 0)) == sizeof(RCF::defined_)) >, \
908 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 79> *) 0)) == sizeof(RCF::defined_)) >, \
909 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 80> *) 0)) == sizeof(RCF::defined_)) >, \
910 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 81> *) 0)) == sizeof(RCF::defined_)) >, \
911 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 82> *) 0)) == sizeof(RCF::defined_)) >, \
912 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 83> *) 0)) == sizeof(RCF::defined_)) >, \
913 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 84> *) 0)) == sizeof(RCF::defined_)) >, \
914 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 85> *) 0)) == sizeof(RCF::defined_)) >, \
915 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 86> *) 0)) == sizeof(RCF::defined_)) >, \
916 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 87> *) 0)) == sizeof(RCF::defined_)) >, \
917 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 88> *) 0)) == sizeof(RCF::defined_)) >, \
918 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 89> *) 0)) == sizeof(RCF::defined_)) >, \
919 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 90> *) 0)) == sizeof(RCF::defined_)) >, \
920 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 91> *) 0)) == sizeof(RCF::defined_)) >, \
921 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 92> *) 0)) == sizeof(RCF::defined_)) >, \
922 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 93> *) 0)) == sizeof(RCF::defined_)) >, \
923 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 94> *) 0)) == sizeof(RCF::defined_)) >, \
924 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 95> *) 0)) == sizeof(RCF::defined_)) >, \
925 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 96> *) 0)) == sizeof(RCF::defined_)) >, \
926 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 97> *) 0)) == sizeof(RCF::defined_)) >, \
927 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 98> *) 0)) == sizeof(RCF::defined_)) >, \
928 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 99> *) 0)) == sizeof(RCF::defined_)) >, \
929 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<100>*) 0)) == sizeof(RCF::defined_)) >, \
930 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<101> *) 0)) == sizeof(RCF::defined_)) >, \
931 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<102> *) 0)) == sizeof(RCF::defined_)) >, \
932 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<103> *) 0)) == sizeof(RCF::defined_)) >, \
933 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<104> *) 0)) == sizeof(RCF::defined_)) >, \
934 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<105> *) 0)) == sizeof(RCF::defined_)) >, \
935 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<106> *) 0)) == sizeof(RCF::defined_)) >, \
936 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<107> *) 0)) == sizeof(RCF::defined_)) >, \
937 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<108> *) 0)) == sizeof(RCF::defined_)) >, \
938 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<109> *) 0)) == sizeof(RCF::defined_)) >, \
939 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<110> *) 0)) == sizeof(RCF::defined_)) >, \
940 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<111> *) 0)) == sizeof(RCF::defined_)) >, \
941 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<112> *) 0)) == sizeof(RCF::defined_)) >, \
942 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<113> *) 0)) == sizeof(RCF::defined_)) >, \
943 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<114> *) 0)) == sizeof(RCF::defined_)) >, \
944 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<115> *) 0)) == sizeof(RCF::defined_)) >, \
945 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<116> *) 0)) == sizeof(RCF::defined_)) >, \
946 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<117> *) 0)) == sizeof(RCF::defined_)) >, \
947 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<118> *) 0)) == sizeof(RCF::defined_)) >, \
948 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<119> *) 0)) == sizeof(RCF::defined_)) >, \
949 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<120> *) 0)) == sizeof(RCF::defined_)) >, \
950 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<121> *) 0)) == sizeof(RCF::defined_)) >, \
951 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<122> *) 0)) == sizeof(RCF::defined_)) >, \
952 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<123> *) 0)) == sizeof(RCF::defined_)) >, \
953 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<124> *) 0)) == sizeof(RCF::defined_)) >, \
954 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<125> *) 0)) == sizeof(RCF::defined_)) >, \
955 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<126> *) 0)) == sizeof(RCF::defined_)) >, \
956 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<127> *) 0)) == sizeof(RCF::defined_)) >, \
957 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<128> *) 0)) == sizeof(RCF::defined_)) >, \
958 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<129> *) 0)) == sizeof(RCF::defined_)) >, \
959 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<130> *) 0)) == sizeof(RCF::defined_)) >, \
960 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<131> *) 0)) == sizeof(RCF::defined_)) >, \
961 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<132> *) 0)) == sizeof(RCF::defined_)) >, \
962 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<133> *) 0)) == sizeof(RCF::defined_)) >, \
963 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<134> *) 0)) == sizeof(RCF::defined_)) >, \
964 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<135> *) 0)) == sizeof(RCF::defined_)) >, \
965 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<136> *) 0)) == sizeof(RCF::defined_)) >, \
966 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<137> *) 0)) == sizeof(RCF::defined_)) >, \
967 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<138> *) 0)) == sizeof(RCF::defined_)) >, \
968 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<139> *) 0)) == sizeof(RCF::defined_)) >, \
969 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<140> *) 0)) == sizeof(RCF::defined_)) >, \
970 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<141> *) 0)) == sizeof(RCF::defined_)) >, \
971 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<142> *) 0)) == sizeof(RCF::defined_)) >, \
972 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<143> *) 0)) == sizeof(RCF::defined_)) >, \
973 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<144> *) 0)) == sizeof(RCF::defined_)) >, \
974 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<145> *) 0)) == sizeof(RCF::defined_)) >, \
975 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<146> *) 0)) == sizeof(RCF::defined_)) >, \
976 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<147> *) 0)) == sizeof(RCF::defined_)) >, \
977 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<148> *) 0)) == sizeof(RCF::defined_)) >, \
978 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<149> *) 0)) == sizeof(RCF::defined_)) >, \
979 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<150> *) 0)) == sizeof(RCF::defined_)) >, \
980 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<151> *) 0)) == sizeof(RCF::defined_)) >, \
981 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<152> *) 0)) == sizeof(RCF::defined_)) >, \
982 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<153> *) 0)) == sizeof(RCF::defined_)) >, \
983 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<154> *) 0)) == sizeof(RCF::defined_)) >, \
984 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<155> *) 0)) == sizeof(RCF::defined_)) >, \
985 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<156> *) 0)) == sizeof(RCF::defined_)) >, \
986 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<157> *) 0)) == sizeof(RCF::defined_)) >, \
987 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<158> *) 0)) == sizeof(RCF::defined_)) >, \
988 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<159> *) 0)) == sizeof(RCF::defined_)) >, \
989 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<160> *) 0)) == sizeof(RCF::defined_)) >, \
990 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<161> *) 0)) == sizeof(RCF::defined_)) >, \
991 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<162> *) 0)) == sizeof(RCF::defined_)) >, \
992 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<163> *) 0)) == sizeof(RCF::defined_)) >, \
993 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<164> *) 0)) == sizeof(RCF::defined_)) >, \
994 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<165> *) 0)) == sizeof(RCF::defined_)) >, \
995 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<166> *) 0)) == sizeof(RCF::defined_)) >, \
996 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<167> *) 0)) == sizeof(RCF::defined_)) >, \
997 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<168> *) 0)) == sizeof(RCF::defined_)) >, \
998 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<169> *) 0)) == sizeof(RCF::defined_)) >, \
999 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<170> *) 0)) == sizeof(RCF::defined_)) >, \
1000 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<171> *) 0)) == sizeof(RCF::defined_)) >, \
1001 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<172> *) 0)) == sizeof(RCF::defined_)) >, \
1002 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<173> *) 0)) == sizeof(RCF::defined_)) >, \
1003 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<174> *) 0)) == sizeof(RCF::defined_)) >, \
1004 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<175> *) 0)) == sizeof(RCF::defined_)) >, \
1005 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<176> *) 0)) == sizeof(RCF::defined_)) >, \
1006 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<177> *) 0)) == sizeof(RCF::defined_)) >, \
1007 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<178> *) 0)) == sizeof(RCF::defined_)) >, \
1008 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<179> *) 0)) == sizeof(RCF::defined_)) >, \
1009 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<180> *) 0)) == sizeof(RCF::defined_)) >, \
1010 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<181> *) 0)) == sizeof(RCF::defined_)) >, \
1011 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<182> *) 0)) == sizeof(RCF::defined_)) >, \
1012 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<183> *) 0)) == sizeof(RCF::defined_)) >, \
1013 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<184> *) 0)) == sizeof(RCF::defined_)) >, \
1014 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<185> *) 0)) == sizeof(RCF::defined_)) >, \
1015 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<186> *) 0)) == sizeof(RCF::defined_)) >, \
1016 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<187> *) 0)) == sizeof(RCF::defined_)) >, \
1017 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<188> *) 0)) == sizeof(RCF::defined_)) >, \
1018 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<189> *) 0)) == sizeof(RCF::defined_)) >, \
1019 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<190> *) 0)) == sizeof(RCF::defined_)) >, \
1020 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<191> *) 0)) == sizeof(RCF::defined_)) >, \
1021 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<192> *) 0)) == sizeof(RCF::defined_)) >, \
1022 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<193> *) 0)) == sizeof(RCF::defined_)) >, \
1023 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<194> *) 0)) == sizeof(RCF::defined_)) >, \
1024 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<195> *) 0)) == sizeof(RCF::defined_)) >, \
1025 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<196> *) 0)) == sizeof(RCF::defined_)) >, \
1026 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<197> *) 0)) == sizeof(RCF::defined_)) >, \
1027 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<198> *) 0)) == sizeof(RCF::defined_)) >, \
1028 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<199> *) 0)) == sizeof(RCF::defined_)) >, \
1029 boost::mpl::int_<200>, \
1030 boost::mpl::int_<199> >::type, \
1031 boost::mpl::int_<198> >::type, \
1032 boost::mpl::int_<197> >::type, \
1033 boost::mpl::int_<196> >::type, \
1034 boost::mpl::int_<195> >::type, \
1035 boost::mpl::int_<194> >::type, \
1036 boost::mpl::int_<193> >::type, \
1037 boost::mpl::int_<192> >::type, \
1038 boost::mpl::int_<191> >::type, \
1039 boost::mpl::int_<190> >::type, \
1040 boost::mpl::int_<189> >::type, \
1041 boost::mpl::int_<188> >::type, \
1042 boost::mpl::int_<187> >::type, \
1043 boost::mpl::int_<186> >::type, \
1044 boost::mpl::int_<185> >::type, \
1045 boost::mpl::int_<184> >::type, \
1046 boost::mpl::int_<183> >::type, \
1047 boost::mpl::int_<182> >::type, \
1048 boost::mpl::int_<181> >::type, \
1049 boost::mpl::int_<180> >::type, \
1050 boost::mpl::int_<179> >::type, \
1051 boost::mpl::int_<178> >::type, \
1052 boost::mpl::int_<177> >::type, \
1053 boost::mpl::int_<176> >::type, \
1054 boost::mpl::int_<175> >::type, \
1055 boost::mpl::int_<174> >::type, \
1056 boost::mpl::int_<173> >::type, \
1057 boost::mpl::int_<172> >::type, \
1058 boost::mpl::int_<171> >::type, \
1059 boost::mpl::int_<170> >::type, \
1060 boost::mpl::int_<169> >::type, \
1061 boost::mpl::int_<168> >::type, \
1062 boost::mpl::int_<167> >::type, \
1063 boost::mpl::int_<166> >::type, \
1064 boost::mpl::int_<165> >::type, \
1065 boost::mpl::int_<164> >::type, \
1066 boost::mpl::int_<163> >::type, \
1067 boost::mpl::int_<162> >::type, \
1068 boost::mpl::int_<161> >::type, \
1069 boost::mpl::int_<160> >::type, \
1070 boost::mpl::int_<159> >::type, \
1071 boost::mpl::int_<158> >::type, \
1072 boost::mpl::int_<157> >::type, \
1073 boost::mpl::int_<156> >::type, \
1074 boost::mpl::int_<155> >::type, \
1075 boost::mpl::int_<154> >::type, \
1076 boost::mpl::int_<153> >::type, \
1077 boost::mpl::int_<152> >::type, \
1078 boost::mpl::int_<151> >::type, \
1079 boost::mpl::int_<150> >::type, \
1080 boost::mpl::int_<149> >::type, \
1081 boost::mpl::int_<148> >::type, \
1082 boost::mpl::int_<147> >::type, \
1083 boost::mpl::int_<146> >::type, \
1084 boost::mpl::int_<145> >::type, \
1085 boost::mpl::int_<144> >::type, \
1086 boost::mpl::int_<143> >::type, \
1087 boost::mpl::int_<142> >::type, \
1088 boost::mpl::int_<141> >::type, \
1089 boost::mpl::int_<140> >::type, \
1090 boost::mpl::int_<139> >::type, \
1091 boost::mpl::int_<138> >::type, \
1092 boost::mpl::int_<137> >::type, \
1093 boost::mpl::int_<136> >::type, \
1094 boost::mpl::int_<135> >::type, \
1095 boost::mpl::int_<134> >::type, \
1096 boost::mpl::int_<133> >::type, \
1097 boost::mpl::int_<132> >::type, \
1098 boost::mpl::int_<131> >::type, \
1099 boost::mpl::int_<130> >::type, \
1100 boost::mpl::int_<129> >::type, \
1101 boost::mpl::int_<128> >::type, \
1102 boost::mpl::int_<127> >::type, \
1103 boost::mpl::int_<126> >::type, \
1104 boost::mpl::int_<125> >::type, \
1105 boost::mpl::int_<124> >::type, \
1106 boost::mpl::int_<123> >::type, \
1107 boost::mpl::int_<122> >::type, \
1108 boost::mpl::int_<121> >::type, \
1109 boost::mpl::int_<120> >::type, \
1110 boost::mpl::int_<119> >::type, \
1111 boost::mpl::int_<118> >::type, \
1112 boost::mpl::int_<117> >::type, \
1113 boost::mpl::int_<116> >::type, \
1114 boost::mpl::int_<115> >::type, \
1115 boost::mpl::int_<114> >::type, \
1116 boost::mpl::int_<113> >::type, \
1117 boost::mpl::int_<112> >::type, \
1118 boost::mpl::int_<111> >::type, \
1119 boost::mpl::int_<110> >::type, \
1120 boost::mpl::int_<109> >::type, \
1121 boost::mpl::int_<108> >::type, \
1122 boost::mpl::int_<107> >::type, \
1123 boost::mpl::int_<106> >::type, \
1124 boost::mpl::int_<105> >::type, \
1125 boost::mpl::int_<104> >::type, \
1126 boost::mpl::int_<103> >::type, \
1127 boost::mpl::int_<102> >::type, \
1128 boost::mpl::int_<101> >::type, \
1129 boost::mpl::int_<100> >::type, \
1130 boost::mpl::int_< 99> >::type, \
1131 boost::mpl::int_< 98> >::type, \
1132 boost::mpl::int_< 97> >::type, \
1133 boost::mpl::int_< 96> >::type, \
1134 boost::mpl::int_< 95> >::type, \
1135 boost::mpl::int_< 94> >::type, \
1136 boost::mpl::int_< 93> >::type, \
1137 boost::mpl::int_< 92> >::type, \
1138 boost::mpl::int_< 91> >::type, \
1139 boost::mpl::int_< 90> >::type, \
1140 boost::mpl::int_< 89> >::type, \
1141 boost::mpl::int_< 88> >::type, \
1142 boost::mpl::int_< 87> >::type, \
1143 boost::mpl::int_< 86> >::type, \
1144 boost::mpl::int_< 85> >::type, \
1145 boost::mpl::int_< 84> >::type, \
1146 boost::mpl::int_< 83> >::type, \
1147 boost::mpl::int_< 82> >::type, \
1148 boost::mpl::int_< 81> >::type, \
1149 boost::mpl::int_< 80> >::type, \
1150 boost::mpl::int_< 79> >::type, \
1151 boost::mpl::int_< 78> >::type, \
1152 boost::mpl::int_< 77> >::type, \
1153 boost::mpl::int_< 76> >::type, \
1154 boost::mpl::int_< 75> >::type, \
1155 boost::mpl::int_< 74> >::type, \
1156 boost::mpl::int_< 73> >::type, \
1157 boost::mpl::int_< 72> >::type, \
1158 boost::mpl::int_< 71> >::type, \
1159 boost::mpl::int_< 70> >::type, \
1160 boost::mpl::int_< 69> >::type, \
1161 boost::mpl::int_< 68> >::type, \
1162 boost::mpl::int_< 67> >::type, \
1163 boost::mpl::int_< 66> >::type, \
1164 boost::mpl::int_< 65> >::type, \
1165 boost::mpl::int_< 64> >::type, \
1166 boost::mpl::int_< 63> >::type, \
1167 boost::mpl::int_< 62> >::type, \
1168 boost::mpl::int_< 61> >::type, \
1169 boost::mpl::int_< 60> >::type, \
1170 boost::mpl::int_< 59> >::type, \
1171 boost::mpl::int_< 58> >::type, \
1172 boost::mpl::int_< 57> >::type, \
1173 boost::mpl::int_< 56> >::type, \
1174 boost::mpl::int_< 55> >::type, \
1175 boost::mpl::int_< 54> >::type, \
1176 boost::mpl::int_< 53> >::type, \
1177 boost::mpl::int_< 52> >::type, \
1178 boost::mpl::int_< 51> >::type, \
1179 boost::mpl::int_< 50> >::type, \
1180 boost::mpl::int_< 49> >::type, \
1181 boost::mpl::int_< 48> >::type, \
1182 boost::mpl::int_< 47> >::type, \
1183 boost::mpl::int_< 46> >::type, \
1184 boost::mpl::int_< 45> >::type, \
1185 boost::mpl::int_< 44> >::type, \
1186 boost::mpl::int_< 43> >::type, \
1187 boost::mpl::int_< 42> >::type, \
1188 boost::mpl::int_< 41> >::type, \
1189 boost::mpl::int_< 40> >::type, \
1190 boost::mpl::int_< 39> >::type, \
1191 boost::mpl::int_< 38> >::type, \
1192 boost::mpl::int_< 37> >::type, \
1193 boost::mpl::int_< 36> >::type, \
1194 boost::mpl::int_< 35> >::type, \
1195 boost::mpl::int_< 34> >::type, \
1196 boost::mpl::int_< 33> >::type, \
1197 boost::mpl::int_< 32> >::type, \
1198 boost::mpl::int_< 31> >::type, \
1199 boost::mpl::int_< 30> >::type, \
1200 boost::mpl::int_< 29> >::type, \
1201 boost::mpl::int_< 28> >::type, \
1202 boost::mpl::int_< 27> >::type, \
1203 boost::mpl::int_< 26> >::type, \
1204 boost::mpl::int_< 25> >::type, \
1205 boost::mpl::int_< 24> >::type, \
1206 boost::mpl::int_< 23> >::type, \
1207 boost::mpl::int_< 22> >::type, \
1208 boost::mpl::int_< 21> >::type, \
1209 boost::mpl::int_< 20> >::type, \
1210 boost::mpl::int_< 19> >::type, \
1211 boost::mpl::int_< 18> >::type, \
1212 boost::mpl::int_< 17> >::type, \
1213 boost::mpl::int_< 16> >::type, \
1214 boost::mpl::int_< 15> >::type, \
1215 boost::mpl::int_< 14> >::type, \
1216 boost::mpl::int_< 13> >::type, \
1217 boost::mpl::int_< 12> >::type, \
1218 boost::mpl::int_< 11> >::type, \
1219 boost::mpl::int_< 10> >::type, \
1220 boost::mpl::int_< 9> >::type, \
1221 boost::mpl::int_< 8> >::type, \
1222 boost::mpl::int_< 7> >::type, \
1223 boost::mpl::int_< 6> >::type, \
1224 boost::mpl::int_< 5> >::type, \
1225 boost::mpl::int_< 4> >::type, \
1226 boost::mpl::int_< 3> >::type, \
1227 boost::mpl::int_< 2> >::type, \
1228 boost::mpl::int_< 1> >::type, \
1229 boost::mpl::int_< 0> >::type next_static_id; \
1230 friend_or_not RCF::defined_ helper_func(T1 *, T2 *, next_static_id *);
1233 #define RCF_CURRENT_STATIC_ID(current_static_id, helper_func, T1, T2) \
1235 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
1236 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
1237 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
1238 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
1239 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
1240 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
1241 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
1242 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
1243 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
1244 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
1245 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 10> *) 0)) == sizeof(RCF::defined_)) >, \
1246 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 11> *) 0)) == sizeof(RCF::defined_)) >, \
1247 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 12> *) 0)) == sizeof(RCF::defined_)) >, \
1248 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 13> *) 0)) == sizeof(RCF::defined_)) >, \
1249 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 14> *) 0)) == sizeof(RCF::defined_)) >, \
1250 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 15> *) 0)) == sizeof(RCF::defined_)) >, \
1251 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 16> *) 0)) == sizeof(RCF::defined_)) >, \
1252 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 17> *) 0)) == sizeof(RCF::defined_)) >, \
1253 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 18> *) 0)) == sizeof(RCF::defined_)) >, \
1254 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 19> *) 0)) == sizeof(RCF::defined_)) >, \
1255 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 20> *) 0)) == sizeof(RCF::defined_)) >, \
1256 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 21> *) 0)) == sizeof(RCF::defined_)) >, \
1257 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 22> *) 0)) == sizeof(RCF::defined_)) >, \
1258 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 23> *) 0)) == sizeof(RCF::defined_)) >, \
1259 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 24> *) 0)) == sizeof(RCF::defined_)) >, \
1260 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 25> *) 0)) == sizeof(RCF::defined_)) >, \
1261 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 26> *) 0)) == sizeof(RCF::defined_)) >, \
1262 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 27> *) 0)) == sizeof(RCF::defined_)) >, \
1263 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 28> *) 0)) == sizeof(RCF::defined_)) >, \
1264 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 29> *) 0)) == sizeof(RCF::defined_)) >, \
1265 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 30> *) 0)) == sizeof(RCF::defined_)) >, \
1266 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 31> *) 0)) == sizeof(RCF::defined_)) >, \
1267 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 32> *) 0)) == sizeof(RCF::defined_)) >, \
1268 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 33> *) 0)) == sizeof(RCF::defined_)) >, \
1269 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 34> *) 0)) == sizeof(RCF::defined_)) >, \
1270 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 35> *) 0)) == sizeof(RCF::defined_)) >, \
1271 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 36> *) 0)) == sizeof(RCF::defined_)) >, \
1272 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 37> *) 0)) == sizeof(RCF::defined_)) >, \
1273 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 38> *) 0)) == sizeof(RCF::defined_)) >, \
1274 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 39> *) 0)) == sizeof(RCF::defined_)) >, \
1275 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 40> *) 0)) == sizeof(RCF::defined_)) >, \
1276 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 41> *) 0)) == sizeof(RCF::defined_)) >, \
1277 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 42> *) 0)) == sizeof(RCF::defined_)) >, \
1278 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 43> *) 0)) == sizeof(RCF::defined_)) >, \
1279 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 44> *) 0)) == sizeof(RCF::defined_)) >, \
1280 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 45> *) 0)) == sizeof(RCF::defined_)) >, \
1281 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 46> *) 0)) == sizeof(RCF::defined_)) >, \
1282 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 47> *) 0)) == sizeof(RCF::defined_)) >, \
1283 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 48> *) 0)) == sizeof(RCF::defined_)) >, \
1284 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 49> *) 0)) == sizeof(RCF::defined_)) >, \
1285 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 50> *) 0)) == sizeof(RCF::defined_)) >, \
1286 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 51> *) 0)) == sizeof(RCF::defined_)) >, \
1287 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 52> *) 0)) == sizeof(RCF::defined_)) >, \
1288 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 53> *) 0)) == sizeof(RCF::defined_)) >, \
1289 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 54> *) 0)) == sizeof(RCF::defined_)) >, \
1290 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 55> *) 0)) == sizeof(RCF::defined_)) >, \
1291 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 56> *) 0)) == sizeof(RCF::defined_)) >, \
1292 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 57> *) 0)) == sizeof(RCF::defined_)) >, \
1293 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 58> *) 0)) == sizeof(RCF::defined_)) >, \
1294 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 59> *) 0)) == sizeof(RCF::defined_)) >, \
1295 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 60> *) 0)) == sizeof(RCF::defined_)) >, \
1296 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 61> *) 0)) == sizeof(RCF::defined_)) >, \
1297 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 62> *) 0)) == sizeof(RCF::defined_)) >, \
1298 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 63> *) 0)) == sizeof(RCF::defined_)) >, \
1299 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 64> *) 0)) == sizeof(RCF::defined_)) >, \
1300 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 65> *) 0)) == sizeof(RCF::defined_)) >, \
1301 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 66> *) 0)) == sizeof(RCF::defined_)) >, \
1302 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 67> *) 0)) == sizeof(RCF::defined_)) >, \
1303 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 68> *) 0)) == sizeof(RCF::defined_)) >, \
1304 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 69> *) 0)) == sizeof(RCF::defined_)) >, \
1305 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 70> *) 0)) == sizeof(RCF::defined_)) >, \
1306 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 71> *) 0)) == sizeof(RCF::defined_)) >, \
1307 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 72> *) 0)) == sizeof(RCF::defined_)) >, \
1308 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 73> *) 0)) == sizeof(RCF::defined_)) >, \
1309 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 74> *) 0)) == sizeof(RCF::defined_)) >, \
1310 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 75> *) 0)) == sizeof(RCF::defined_)) >, \
1311 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 76> *) 0)) == sizeof(RCF::defined_)) >, \
1312 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 77> *) 0)) == sizeof(RCF::defined_)) >, \
1313 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 78> *) 0)) == sizeof(RCF::defined_)) >, \
1314 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 79> *) 0)) == sizeof(RCF::defined_)) >, \
1315 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 80> *) 0)) == sizeof(RCF::defined_)) >, \
1316 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 81> *) 0)) == sizeof(RCF::defined_)) >, \
1317 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 82> *) 0)) == sizeof(RCF::defined_)) >, \
1318 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 83> *) 0)) == sizeof(RCF::defined_)) >, \
1319 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 84> *) 0)) == sizeof(RCF::defined_)) >, \
1320 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 85> *) 0)) == sizeof(RCF::defined_)) >, \
1321 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 86> *) 0)) == sizeof(RCF::defined_)) >, \
1322 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 87> *) 0)) == sizeof(RCF::defined_)) >, \
1323 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 88> *) 0)) == sizeof(RCF::defined_)) >, \
1324 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 89> *) 0)) == sizeof(RCF::defined_)) >, \
1325 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 90> *) 0)) == sizeof(RCF::defined_)) >, \
1326 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 91> *) 0)) == sizeof(RCF::defined_)) >, \
1327 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 92> *) 0)) == sizeof(RCF::defined_)) >, \
1328 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 93> *) 0)) == sizeof(RCF::defined_)) >, \
1329 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 94> *) 0)) == sizeof(RCF::defined_)) >, \
1330 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 95> *) 0)) == sizeof(RCF::defined_)) >, \
1331 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 96> *) 0)) == sizeof(RCF::defined_)) >, \
1332 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 97> *) 0)) == sizeof(RCF::defined_)) >, \
1333 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 98> *) 0)) == sizeof(RCF::defined_)) >, \
1334 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 99> *) 0)) == sizeof(RCF::defined_)) >, \
1335 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<100> *) 0)) == sizeof(RCF::defined_)) >, \
1336 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<101> *) 0)) == sizeof(RCF::defined_)) >, \
1337 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<102> *) 0)) == sizeof(RCF::defined_)) >, \
1338 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<103> *) 0)) == sizeof(RCF::defined_)) >, \
1339 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<104> *) 0)) == sizeof(RCF::defined_)) >, \
1340 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<105> *) 0)) == sizeof(RCF::defined_)) >, \
1341 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<106> *) 0)) == sizeof(RCF::defined_)) >, \
1342 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<107> *) 0)) == sizeof(RCF::defined_)) >, \
1343 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<108> *) 0)) == sizeof(RCF::defined_)) >, \
1344 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<109> *) 0)) == sizeof(RCF::defined_)) >, \
1345 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<110> *) 0)) == sizeof(RCF::defined_)) >, \
1346 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<111> *) 0)) == sizeof(RCF::defined_)) >, \
1347 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<112> *) 0)) == sizeof(RCF::defined_)) >, \
1348 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<113> *) 0)) == sizeof(RCF::defined_)) >, \
1349 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<114> *) 0)) == sizeof(RCF::defined_)) >, \
1350 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<115> *) 0)) == sizeof(RCF::defined_)) >, \
1351 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<116> *) 0)) == sizeof(RCF::defined_)) >, \
1352 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<117> *) 0)) == sizeof(RCF::defined_)) >, \
1353 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<118> *) 0)) == sizeof(RCF::defined_)) >, \
1354 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<119> *) 0)) == sizeof(RCF::defined_)) >, \
1355 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<120> *) 0)) == sizeof(RCF::defined_)) >, \
1356 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<121> *) 0)) == sizeof(RCF::defined_)) >, \
1357 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<122> *) 0)) == sizeof(RCF::defined_)) >, \
1358 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<123> *) 0)) == sizeof(RCF::defined_)) >, \
1359 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<124> *) 0)) == sizeof(RCF::defined_)) >, \
1360 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<125> *) 0)) == sizeof(RCF::defined_)) >, \
1361 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<126> *) 0)) == sizeof(RCF::defined_)) >, \
1362 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<127> *) 0)) == sizeof(RCF::defined_)) >, \
1363 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<128> *) 0)) == sizeof(RCF::defined_)) >, \
1364 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<129> *) 0)) == sizeof(RCF::defined_)) >, \
1365 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<130> *) 0)) == sizeof(RCF::defined_)) >, \
1366 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<131> *) 0)) == sizeof(RCF::defined_)) >, \
1367 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<132> *) 0)) == sizeof(RCF::defined_)) >, \
1368 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<133> *) 0)) == sizeof(RCF::defined_)) >, \
1369 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<134> *) 0)) == sizeof(RCF::defined_)) >, \
1370 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<135> *) 0)) == sizeof(RCF::defined_)) >, \
1371 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<136> *) 0)) == sizeof(RCF::defined_)) >, \
1372 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<137> *) 0)) == sizeof(RCF::defined_)) >, \
1373 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<138> *) 0)) == sizeof(RCF::defined_)) >, \
1374 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<139> *) 0)) == sizeof(RCF::defined_)) >, \
1375 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<140> *) 0)) == sizeof(RCF::defined_)) >, \
1376 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<141> *) 0)) == sizeof(RCF::defined_)) >, \
1377 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<142> *) 0)) == sizeof(RCF::defined_)) >, \
1378 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<143> *) 0)) == sizeof(RCF::defined_)) >, \
1379 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<144> *) 0)) == sizeof(RCF::defined_)) >, \
1380 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<145> *) 0)) == sizeof(RCF::defined_)) >, \
1381 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<146> *) 0)) == sizeof(RCF::defined_)) >, \
1382 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<147> *) 0)) == sizeof(RCF::defined_)) >, \
1383 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<148> *) 0)) == sizeof(RCF::defined_)) >, \
1384 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<149> *) 0)) == sizeof(RCF::defined_)) >, \
1385 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<150> *) 0)) == sizeof(RCF::defined_)) >, \
1386 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<151> *) 0)) == sizeof(RCF::defined_)) >, \
1387 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<152> *) 0)) == sizeof(RCF::defined_)) >, \
1388 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<153> *) 0)) == sizeof(RCF::defined_)) >, \
1389 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<154> *) 0)) == sizeof(RCF::defined_)) >, \
1390 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<155> *) 0)) == sizeof(RCF::defined_)) >, \
1391 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<156> *) 0)) == sizeof(RCF::defined_)) >, \
1392 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<157> *) 0)) == sizeof(RCF::defined_)) >, \
1393 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<158> *) 0)) == sizeof(RCF::defined_)) >, \
1394 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<159> *) 0)) == sizeof(RCF::defined_)) >, \
1395 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<160> *) 0)) == sizeof(RCF::defined_)) >, \
1396 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<161> *) 0)) == sizeof(RCF::defined_)) >, \
1397 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<162> *) 0)) == sizeof(RCF::defined_)) >, \
1398 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<163> *) 0)) == sizeof(RCF::defined_)) >, \
1399 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<164> *) 0)) == sizeof(RCF::defined_)) >, \
1400 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<165> *) 0)) == sizeof(RCF::defined_)) >, \
1401 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<166> *) 0)) == sizeof(RCF::defined_)) >, \
1402 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<167> *) 0)) == sizeof(RCF::defined_)) >, \
1403 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<168> *) 0)) == sizeof(RCF::defined_)) >, \
1404 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<169> *) 0)) == sizeof(RCF::defined_)) >, \
1405 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<170> *) 0)) == sizeof(RCF::defined_)) >, \
1406 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<171> *) 0)) == sizeof(RCF::defined_)) >, \
1407 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<172> *) 0)) == sizeof(RCF::defined_)) >, \
1408 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<173> *) 0)) == sizeof(RCF::defined_)) >, \
1409 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<174> *) 0)) == sizeof(RCF::defined_)) >, \
1410 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<175> *) 0)) == sizeof(RCF::defined_)) >, \
1411 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<176> *) 0)) == sizeof(RCF::defined_)) >, \
1412 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<177> *) 0)) == sizeof(RCF::defined_)) >, \
1413 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<178> *) 0)) == sizeof(RCF::defined_)) >, \
1414 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<179> *) 0)) == sizeof(RCF::defined_)) >, \
1415 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<180> *) 0)) == sizeof(RCF::defined_)) >, \
1416 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<181> *) 0)) == sizeof(RCF::defined_)) >, \
1417 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<182> *) 0)) == sizeof(RCF::defined_)) >, \
1418 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<183> *) 0)) == sizeof(RCF::defined_)) >, \
1419 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<184> *) 0)) == sizeof(RCF::defined_)) >, \
1420 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<185> *) 0)) == sizeof(RCF::defined_)) >, \
1421 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<186> *) 0)) == sizeof(RCF::defined_)) >, \
1422 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<187> *) 0)) == sizeof(RCF::defined_)) >, \
1423 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<188> *) 0)) == sizeof(RCF::defined_)) >, \
1424 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<189> *) 0)) == sizeof(RCF::defined_)) >, \
1425 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<190> *) 0)) == sizeof(RCF::defined_)) >, \
1426 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<191> *) 0)) == sizeof(RCF::defined_)) >, \
1427 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<192> *) 0)) == sizeof(RCF::defined_)) >, \
1428 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<193> *) 0)) == sizeof(RCF::defined_)) >, \
1429 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<194> *) 0)) == sizeof(RCF::defined_)) >, \
1430 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<195> *) 0)) == sizeof(RCF::defined_)) >, \
1431 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<196> *) 0)) == sizeof(RCF::defined_)) >, \
1432 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<197> *) 0)) == sizeof(RCF::defined_)) >, \
1433 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<198> *) 0)) == sizeof(RCF::defined_)) >, \
1434 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<199> *) 0)) == sizeof(RCF::defined_)) >, \
1435 boost::mpl::int_<199>, \
1436 boost::mpl::int_<198> >::type, \
1437 boost::mpl::int_<197> >::type, \
1438 boost::mpl::int_<196> >::type, \
1439 boost::mpl::int_<195> >::type, \
1440 boost::mpl::int_<194> >::type, \
1441 boost::mpl::int_<193> >::type, \
1442 boost::mpl::int_<192> >::type, \
1443 boost::mpl::int_<191> >::type, \
1444 boost::mpl::int_<190> >::type, \
1445 boost::mpl::int_<189> >::type, \
1446 boost::mpl::int_<188> >::type, \
1447 boost::mpl::int_<187> >::type, \
1448 boost::mpl::int_<186> >::type, \
1449 boost::mpl::int_<185> >::type, \
1450 boost::mpl::int_<184> >::type, \
1451 boost::mpl::int_<183> >::type, \
1452 boost::mpl::int_<182> >::type, \
1453 boost::mpl::int_<181> >::type, \
1454 boost::mpl::int_<180> >::type, \
1455 boost::mpl::int_<179> >::type, \
1456 boost::mpl::int_<178> >::type, \
1457 boost::mpl::int_<177> >::type, \
1458 boost::mpl::int_<176> >::type, \
1459 boost::mpl::int_<175> >::type, \
1460 boost::mpl::int_<174> >::type, \
1461 boost::mpl::int_<173> >::type, \
1462 boost::mpl::int_<172> >::type, \
1463 boost::mpl::int_<171> >::type, \
1464 boost::mpl::int_<170> >::type, \
1465 boost::mpl::int_<169> >::type, \
1466 boost::mpl::int_<168> >::type, \
1467 boost::mpl::int_<167> >::type, \
1468 boost::mpl::int_<166> >::type, \
1469 boost::mpl::int_<165> >::type, \
1470 boost::mpl::int_<164> >::type, \
1471 boost::mpl::int_<163> >::type, \
1472 boost::mpl::int_<162> >::type, \
1473 boost::mpl::int_<161> >::type, \
1474 boost::mpl::int_<160> >::type, \
1475 boost::mpl::int_<159> >::type, \
1476 boost::mpl::int_<158> >::type, \
1477 boost::mpl::int_<157> >::type, \
1478 boost::mpl::int_<156> >::type, \
1479 boost::mpl::int_<155> >::type, \
1480 boost::mpl::int_<154> >::type, \
1481 boost::mpl::int_<153> >::type, \
1482 boost::mpl::int_<152> >::type, \
1483 boost::mpl::int_<151> >::type, \
1484 boost::mpl::int_<150> >::type, \
1485 boost::mpl::int_<149> >::type, \
1486 boost::mpl::int_<148> >::type, \
1487 boost::mpl::int_<147> >::type, \
1488 boost::mpl::int_<146> >::type, \
1489 boost::mpl::int_<145> >::type, \
1490 boost::mpl::int_<144> >::type, \
1491 boost::mpl::int_<143> >::type, \
1492 boost::mpl::int_<142> >::type, \
1493 boost::mpl::int_<141> >::type, \
1494 boost::mpl::int_<140> >::type, \
1495 boost::mpl::int_<139> >::type, \
1496 boost::mpl::int_<138> >::type, \
1497 boost::mpl::int_<137> >::type, \
1498 boost::mpl::int_<136> >::type, \
1499 boost::mpl::int_<135> >::type, \
1500 boost::mpl::int_<134> >::type, \
1501 boost::mpl::int_<133> >::type, \
1502 boost::mpl::int_<132> >::type, \
1503 boost::mpl::int_<131> >::type, \
1504 boost::mpl::int_<130> >::type, \
1505 boost::mpl::int_<129> >::type, \
1506 boost::mpl::int_<128> >::type, \
1507 boost::mpl::int_<127> >::type, \
1508 boost::mpl::int_<126> >::type, \
1509 boost::mpl::int_<125> >::type, \
1510 boost::mpl::int_<124> >::type, \
1511 boost::mpl::int_<123> >::type, \
1512 boost::mpl::int_<122> >::type, \
1513 boost::mpl::int_<121> >::type, \
1514 boost::mpl::int_<120> >::type, \
1515 boost::mpl::int_<119> >::type, \
1516 boost::mpl::int_<118> >::type, \
1517 boost::mpl::int_<117> >::type, \
1518 boost::mpl::int_<116> >::type, \
1519 boost::mpl::int_<115> >::type, \
1520 boost::mpl::int_<114> >::type, \
1521 boost::mpl::int_<113> >::type, \
1522 boost::mpl::int_<112> >::type, \
1523 boost::mpl::int_<111> >::type, \
1524 boost::mpl::int_<110> >::type, \
1525 boost::mpl::int_<109> >::type, \
1526 boost::mpl::int_<108> >::type, \
1527 boost::mpl::int_<107> >::type, \
1528 boost::mpl::int_<106> >::type, \
1529 boost::mpl::int_<105> >::type, \
1530 boost::mpl::int_<104> >::type, \
1531 boost::mpl::int_<103> >::type, \
1532 boost::mpl::int_<102> >::type, \
1533 boost::mpl::int_<101> >::type, \
1534 boost::mpl::int_<100> >::type, \
1535 boost::mpl::int_< 99> >::type, \
1536 boost::mpl::int_< 98> >::type, \
1537 boost::mpl::int_< 97> >::type, \
1538 boost::mpl::int_< 96> >::type, \
1539 boost::mpl::int_< 95> >::type, \
1540 boost::mpl::int_< 94> >::type, \
1541 boost::mpl::int_< 93> >::type, \
1542 boost::mpl::int_< 92> >::type, \
1543 boost::mpl::int_< 91> >::type, \
1544 boost::mpl::int_< 90> >::type, \
1545 boost::mpl::int_< 89> >::type, \
1546 boost::mpl::int_< 88> >::type, \
1547 boost::mpl::int_< 87> >::type, \
1548 boost::mpl::int_< 86> >::type, \
1549 boost::mpl::int_< 85> >::type, \
1550 boost::mpl::int_< 84> >::type, \
1551 boost::mpl::int_< 83> >::type, \
1552 boost::mpl::int_< 82> >::type, \
1553 boost::mpl::int_< 81> >::type, \
1554 boost::mpl::int_< 80> >::type, \
1555 boost::mpl::int_< 79> >::type, \
1556 boost::mpl::int_< 78> >::type, \
1557 boost::mpl::int_< 77> >::type, \
1558 boost::mpl::int_< 76> >::type, \
1559 boost::mpl::int_< 75> >::type, \
1560 boost::mpl::int_< 74> >::type, \
1561 boost::mpl::int_< 73> >::type, \
1562 boost::mpl::int_< 72> >::type, \
1563 boost::mpl::int_< 71> >::type, \
1564 boost::mpl::int_< 70> >::type, \
1565 boost::mpl::int_< 69> >::type, \
1566 boost::mpl::int_< 68> >::type, \
1567 boost::mpl::int_< 67> >::type, \
1568 boost::mpl::int_< 66> >::type, \
1569 boost::mpl::int_< 65> >::type, \
1570 boost::mpl::int_< 64> >::type, \
1571 boost::mpl::int_< 63> >::type, \
1572 boost::mpl::int_< 62> >::type, \
1573 boost::mpl::int_< 61> >::type, \
1574 boost::mpl::int_< 60> >::type, \
1575 boost::mpl::int_< 59> >::type, \
1576 boost::mpl::int_< 58> >::type, \
1577 boost::mpl::int_< 57> >::type, \
1578 boost::mpl::int_< 56> >::type, \
1579 boost::mpl::int_< 55> >::type, \
1580 boost::mpl::int_< 54> >::type, \
1581 boost::mpl::int_< 53> >::type, \
1582 boost::mpl::int_< 52> >::type, \
1583 boost::mpl::int_< 51> >::type, \
1584 boost::mpl::int_< 50> >::type, \
1585 boost::mpl::int_< 49> >::type, \
1586 boost::mpl::int_< 48> >::type, \
1587 boost::mpl::int_< 47> >::type, \
1588 boost::mpl::int_< 46> >::type, \
1589 boost::mpl::int_< 45> >::type, \
1590 boost::mpl::int_< 44> >::type, \
1591 boost::mpl::int_< 43> >::type, \
1592 boost::mpl::int_< 42> >::type, \
1593 boost::mpl::int_< 41> >::type, \
1594 boost::mpl::int_< 40> >::type, \
1595 boost::mpl::int_< 39> >::type, \
1596 boost::mpl::int_< 38> >::type, \
1597 boost::mpl::int_< 37> >::type, \
1598 boost::mpl::int_< 36> >::type, \
1599 boost::mpl::int_< 35> >::type, \
1600 boost::mpl::int_< 34> >::type, \
1601 boost::mpl::int_< 33> >::type, \
1602 boost::mpl::int_< 32> >::type, \
1603 boost::mpl::int_< 31> >::type, \
1604 boost::mpl::int_< 30> >::type, \
1605 boost::mpl::int_< 29> >::type, \
1606 boost::mpl::int_< 28> >::type, \
1607 boost::mpl::int_< 27> >::type, \
1608 boost::mpl::int_< 26> >::type, \
1609 boost::mpl::int_< 25> >::type, \
1610 boost::mpl::int_< 24> >::type, \
1611 boost::mpl::int_< 23> >::type, \
1612 boost::mpl::int_< 22> >::type, \
1613 boost::mpl::int_< 21> >::type, \
1614 boost::mpl::int_< 20> >::type, \
1615 boost::mpl::int_< 19> >::type, \
1616 boost::mpl::int_< 18> >::type, \
1617 boost::mpl::int_< 17> >::type, \
1618 boost::mpl::int_< 16> >::type, \
1619 boost::mpl::int_< 15> >::type, \
1620 boost::mpl::int_< 14> >::type, \
1621 boost::mpl::int_< 13> >::type, \
1622 boost::mpl::int_< 12> >::type, \
1623 boost::mpl::int_< 11> >::type, \
1624 boost::mpl::int_< 10> >::type, \
1625 boost::mpl::int_< 9> >::type, \
1626 boost::mpl::int_< 8> >::type, \
1627 boost::mpl::int_< 7> >::type, \
1628 boost::mpl::int_< 6> >::type, \
1629 boost::mpl::int_< 5> >::type, \
1630 boost::mpl::int_< 4> >::type, \
1631 boost::mpl::int_< 3> >::type, \
1632 boost::mpl::int_< 2> >::type, \
1633 boost::mpl::int_< 1> >::type, \
1634 boost::mpl::int_< 0> >::type, \
1635 boost::mpl::int_< -1> >::type current_static_id;
1640 #error RCF_MAX_METHOD_COUNT > 200 is currently not implemented.
1642 #endif // RCF_MAX_METHOD_COUNT
1644 #ifdef RCF_SEPARATE_IDL_COMPILATION
1645 #include <RCF/Idl_DeclareOnly.hpp>
1647 #include <RCF/Idl_Inline.hpp>
1650 #endif // ! INCLUDE_RCF_IDL_HPP