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 virtual ::RCF::I_RcfClient \
90 template<typename DerefPtrT> \
91 void registerInvokeFunctors(::RCF::InvokeFunctorMap &invokeFunctorMap, DerefPtrT derefPtr) \
93 ::RCF::registerInvokeFunctors(*this, invokeFunctorMap, derefPtr); \
95 void setClientStubPtr(::RCF::ClientStubPtr clientStubPtr) \
97 mClientStubPtr = clientStubPtr; \
100 #define RCF_BEGIN_IMPL_INHERITED_1(InterfaceT, Name, InheritT1) \
102 class RCF_EXPORT_INTERFACE RcfClient< InterfaceT > : \
103 public virtual ::RCF::I_RcfClient, \
104 public virtual ::RCF::GetInterface<InheritT1>::type \
107 template<typename DerefPtrT> \
108 void registerInvokeFunctors(::RCF::InvokeFunctorMap &invokeFunctorMap, DerefPtrT derefPtr) \
110 ::RCF::registerInvokeFunctors(*this, invokeFunctorMap, derefPtr); \
111 ::RCF::StubAccess().registerParentInvokeFunctors( \
112 (InheritT1 *) NULL, \
117 void setClientStubPtr(::RCF::ClientStubPtr clientStubPtr) \
119 mClientStubPtr = clientStubPtr; \
120 ::RCF::StubAccess().setClientStubPtr( (InheritT1*) 0, *this); \
123 #define RCF_BEGIN_IMPL_INHERITED_2(InterfaceT, Name, InheritT1, InheritT2) \
125 class RcfClient< InterfaceT > : \
126 public virtual ::RCF::I_RcfClient, \
127 public virtual ::RCF::GetInterface<InheritT1>::type, \
128 public virtual ::RCF::GetInterface<InheritT2>::type \
131 template<typename DerefPtrT> \
132 void registerInvokeFunctors(::RCF::InvokeFunctorMap &invokeFunctorMap, DerefPtrT derefPtr) \
134 ::RCF::registerInvokeFunctors(*this, invokeFunctorMap, derefPtr); \
136 ::RCF::StubAccess().registerParentInvokeFunctors( \
137 (InheritT1 *) NULL, \
142 ::RCF::StubAccess().registerParentInvokeFunctors( \
143 (InheritT2 *) NULL, \
148 void setClientStubPtr(::RCF::ClientStubPtr clientStubPtr) \
150 mClientStubPtr = clientStubPtr; \
151 ::RCF::StubAccess().setClientStubPtr( (InheritT1*) 0, *this); \
152 ::RCF::StubAccess().setClientStubPtr( (InheritT2*) 0, *this); \
155 #define RCF_BEGIN_IMPL_POSTLUDE(InterfaceT, Name) \
160 mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
163 template<typename DerefPtrT> \
165 ::RCF::ServerBindingPtr serverStubPtr, \
166 DerefPtrT derefPtr, \
167 boost::mpl::true_ *) \
169 mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL);\
170 serverStubPtr->registerInvokeFunctors(*this, derefPtr); \
171 mServerStubPtr = serverStubPtr; \
175 const ::RCF::Endpoint &endpoint) \
177 mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
178 const std::string & targetName = mInterfaceName; \
179 ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(mInterfaceName, targetName) ); \
180 clientStubPtr->setEndpoint(endpoint); \
181 setClientStubPtr(clientStubPtr); \
185 const ::RCF::Endpoint & endpoint, \
186 const std::string & targetName) \
188 mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
189 ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(mInterfaceName, targetName) ); \
190 clientStubPtr->setEndpoint(endpoint); \
191 setClientStubPtr(clientStubPtr); \
195 ::RCF::ClientTransportAutoPtr clientTransportAutoPtr) \
197 mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL);\
198 const std::string & targetName = mInterfaceName; \
199 ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(mInterfaceName, targetName) ); \
200 clientStubPtr->setTransport(clientTransportAutoPtr); \
201 setClientStubPtr(clientStubPtr); \
205 ::RCF::ClientTransportAutoPtr clientTransportAutoPtr, \
206 const std::string & targetName) \
208 mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
209 ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(mInterfaceName, targetName) ); \
210 clientStubPtr->setTransport(clientTransportAutoPtr); \
211 setClientStubPtr(clientStubPtr); \
215 const ::RCF::ClientStub & clientStub) \
217 mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
218 const std::string & targetName = mInterfaceName; \
219 ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(clientStub) ); \
220 clientStubPtr->setInterfaceName(mInterfaceName); \
221 clientStubPtr->setTargetName(targetName); \
222 clientStubPtr->setTargetToken(::RCF::Token()); \
223 setClientStubPtr(clientStubPtr); \
227 const ::RCF::ClientStub & clientStub, \
228 const std::string & targetName) \
230 mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
231 ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(clientStub) ); \
232 clientStubPtr->setInterfaceName(mInterfaceName); \
233 clientStubPtr->setTargetName(targetName); \
234 clientStubPtr->setTargetToken(::RCF::Token()); \
235 setClientStubPtr(clientStubPtr); \
239 const ::RCF::I_RcfClient & rhs) \
241 mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
242 if (rhs.getClientStubPtr()) \
244 const std::string & targetName = mInterfaceName; \
245 ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(rhs.getClientStub())); \
246 clientStubPtr->setInterfaceName(mInterfaceName); \
247 clientStubPtr->setTargetName(targetName); \
248 clientStubPtr->setTargetToken(::RCF::Token()); \
249 setClientStubPtr(clientStubPtr); \
257 RcfClient &operator=(const RcfClient &rhs) \
261 if (rhs.mClientStubPtr) \
263 const std::string &targetName = mInterfaceName; \
264 ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(rhs.getClientStub())); \
265 clientStubPtr->setInterfaceName(mInterfaceName); \
266 clientStubPtr->setTargetName(targetName); \
267 clientStubPtr->setTargetToken(::RCF::Token()); \
268 setClientStubPtr(clientStubPtr); \
272 RCF_ASSERT(!rhs.mServerStubPtr); \
273 mClientStubPtr = rhs.mClientStubPtr; \
279 RcfClient &operator=(const ::RCF::I_RcfClient &rhs) \
281 if (rhs.getClientStubPtr()) \
283 const std::string & targetName = mInterfaceName; \
284 ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(rhs.getClientStub())); \
285 clientStubPtr->setInterfaceName(mInterfaceName); \
286 clientStubPtr->setTargetName(targetName); \
287 clientStubPtr->setTargetToken(::RCF::Token()); \
288 setClientStubPtr(clientStubPtr); \
292 RCF_ASSERT(!rhs.getServerStubPtr()); \
293 mClientStubPtr.reset(); \
298 void swap(RcfClient & rhs) \
300 ::RCF::ClientStubPtr clientStubPtr = rhs.mClientStubPtr; \
301 ::RCF::ServerBindingPtr serverStubPtr = rhs.mServerStubPtr; \
303 rhs.mClientStubPtr = mClientStubPtr; \
304 rhs.mServerStubPtr = mServerStubPtr; \
306 mClientStubPtr = clientStubPtr; \
307 mServerStubPtr = serverStubPtr; \
311 ::RCF::ClientStub &getClientStub() \
313 return *mClientStubPtr; \
316 const ::RCF::ClientStub &getClientStub() const \
318 return *mClientStubPtr; \
321 ::RCF::ClientStubPtr getClientStubPtr() const \
323 return mClientStubPtr; \
326 ::RCF::ServerBindingPtr getServerStubPtr() const \
328 return mServerStubPtr; \
332 ::RCF::ServerBinding &getServerStub() \
334 return *mServerStubPtr; \
338 template<typename Archive> \
339 void serialize(Archive &ar) \
341 ::RCF::StubAccess().serialize(ar, *this); \
344 template<typename Archive> \
345 void serialize(Archive &ar, const unsigned int) \
347 ::RCF::StubAccess().serialize(ar, *this, 0); \
352 template<typename N, typename T> \
355 ::RCF::RcfSession &, \
358 ::RCF::Exception e(RCF::_RcfError_FnId(N::value)); \
362 const char * getFunctionName(...) \
364 RCF_ASSERT(0 && "getFunctionName() - invalid function id"); \
368 const char * getArity(...) \
370 RCF_ASSERT(0 && "getArity() - invalid function id"); \
374 ::RCF::ClientStubPtr mClientStubPtr; \
375 ::RCF::ServerBindingPtr mServerStubPtr; \
377 std::string mInterfaceName; \
379 typedef ::RCF::Void V; \
380 typedef RcfClient< InterfaceT > ThisT; \
381 typedef ::RCF::Dummy<ThisT> DummyThisT; \
383 friend class ::RCF::StubAccess; \
384 friend ::RCF::default_ RCF_make_next_dispatch_id_func(DummyThisT *, ThisT *,...); \
386 typedef InterfaceT Interface;
390 #define RCF_END_INLINE( InterfaceT ) \
393 #define RCF_METHOD_PLACEHOLDER() \
394 RCF_METHOD_PLACEHOLDER_(RCF_MAKE_UNIQUE_ID(PlaceHolder, V0))
396 #define RCF_METHOD_PLACEHOLDER_(id) \
398 RCF_MAKE_NEXT_DISPATCH_ID(id) \
405 #define RCF_BEGIN_DECL RCF_BEGIN_INLINE
406 #define RCF_BEGIN_I0_DECL RCF_BEGIN_I0_INLINE
407 #define RCF_BEGIN_I1_DECL RCF_BEGIN_I1_INLINE
408 #define RCF_BEGIN_I2_DECL RCF_BEGIN_I2_INLINE
409 #define RCF_END_DECL RCF_END_INLINE
413 #define RCF_BEGIN_DEF(Interface, Name) \
414 RCF_BEGIN_DEF_(Interface, Name, RCF_PP_CAT(rcf_interface_id_, Interface, _, __LINE__))
416 #define RCF_BEGIN_I0_DEF(Interface, Name) \
417 RCF_BEGIN_DEF_(Interface, Name, RCF_PP_CAT(rcf_interface_id_, Interface, _, __LINE__))
419 #define RCF_BEGIN_I1_DEF(Interface, Name, InheritT1) \
420 RCF_BEGIN_DEF_(Interface, Name, RCF_PP_CAT(rcf_interface_id_, Interface, _, __LINE__))
422 #define RCF_BEGIN_I2_DEF(Interface, Name, InheritT1, InheritT2) \
423 RCF_BEGIN_DEF_(Interface, Name, RCF_PP_CAT(rcf_interface_id_, Interface, _, __LINE__))
425 #define RCF_BEGIN_DEF_(Interface, Name, interfaceId) \
426 static ::RCF::default_ RCF_interface_id_helper(int *, int *, ...); \
427 static ::RCF::default_ RCF_def_dispatch_id_helper(::RCF::Dummy< RcfClient<Interface> > *, RcfClient<Interface> *, ...); \
428 RCF_ADVANCE_STATIC_ID(interfaceId, RCF_interface_id_helper, int, int, static) \
429 template<typename N> class GeneratorParms; \
431 class GeneratorParms<interfaceId> \
434 typedef Interface InterfaceT; \
435 typedef RcfClient<InterfaceT> RcfClientT; \
438 #define RCF_END_DEF( Interface )
442 #include "RcfMethodGen.hpp"
446 BOOST_STATIC_ASSERT(
sizeof(RCF::defined_) !=
sizeof(RCF::default_));
448 #define RCF_PP_CAT(arg1, arg2, arg3, arg4) BOOST_PP_CAT( arg1, BOOST_PP_CAT( arg2, BOOST_PP_CAT(arg3, arg4) ) )
449 #define RCF_MAKE_UNIQUE_ID(func, sig) RCF_PP_CAT(rcf_unique_id_, func, sig, __LINE__)
451 #define RCF_MAKE_NEXT_DISPATCH_ID(next_dispatch_id) \
452 RCF_ADVANCE_STATIC_ID(next_dispatch_id, RCF_make_next_dispatch_id_func, DummyThisT, ThisT, friend)
454 #if RCF_MAX_METHOD_COUNT <= 35
456 #define RCF_ADVANCE_STATIC_ID(next_static_id, helper_func, T1, T2, friend_or_not) \
458 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
459 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
460 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
461 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
462 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
463 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
464 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
465 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
466 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
467 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
468 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<10> *) 0)) == sizeof(RCF::defined_)) >, \
469 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<11> *) 0)) == sizeof(RCF::defined_)) >, \
470 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<12> *) 0)) == sizeof(RCF::defined_)) >, \
471 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<13> *) 0)) == sizeof(RCF::defined_)) >, \
472 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<14> *) 0)) == sizeof(RCF::defined_)) >, \
473 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<15> *) 0)) == sizeof(RCF::defined_)) >, \
474 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<16> *) 0)) == sizeof(RCF::defined_)) >, \
475 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<17> *) 0)) == sizeof(RCF::defined_)) >, \
476 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<18> *) 0)) == sizeof(RCF::defined_)) >, \
477 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<19> *) 0)) == sizeof(RCF::defined_)) >, \
478 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<20> *) 0)) == sizeof(RCF::defined_)) >, \
479 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<21> *) 0)) == sizeof(RCF::defined_)) >, \
480 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<22> *) 0)) == sizeof(RCF::defined_)) >, \
481 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<23> *) 0)) == sizeof(RCF::defined_)) >, \
482 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<24> *) 0)) == sizeof(RCF::defined_)) >, \
483 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<25> *) 0)) == sizeof(RCF::defined_)) >, \
484 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<26> *) 0)) == sizeof(RCF::defined_)) >, \
485 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<27> *) 0)) == sizeof(RCF::defined_)) >, \
486 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<28> *) 0)) == sizeof(RCF::defined_)) >, \
487 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<29> *) 0)) == sizeof(RCF::defined_)) >, \
488 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<30> *) 0)) == sizeof(RCF::defined_)) >, \
489 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<31> *) 0)) == sizeof(RCF::defined_)) >, \
490 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<32> *) 0)) == sizeof(RCF::defined_)) >, \
491 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<33> *) 0)) == sizeof(RCF::defined_)) >, \
492 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<34> *) 0)) == sizeof(RCF::defined_)) >, \
493 boost::mpl::int_<35>, \
494 boost::mpl::int_<34> >::type, \
495 boost::mpl::int_<33> >::type, \
496 boost::mpl::int_<32> >::type, \
497 boost::mpl::int_<31> >::type, \
498 boost::mpl::int_<30> >::type, \
499 boost::mpl::int_<29> >::type, \
500 boost::mpl::int_<28> >::type, \
501 boost::mpl::int_<27> >::type, \
502 boost::mpl::int_<26> >::type, \
503 boost::mpl::int_<25> >::type, \
504 boost::mpl::int_<24> >::type, \
505 boost::mpl::int_<23> >::type, \
506 boost::mpl::int_<22> >::type, \
507 boost::mpl::int_<21> >::type, \
508 boost::mpl::int_<20> >::type, \
509 boost::mpl::int_<19> >::type, \
510 boost::mpl::int_<18> >::type, \
511 boost::mpl::int_<17> >::type, \
512 boost::mpl::int_<16> >::type, \
513 boost::mpl::int_<15> >::type, \
514 boost::mpl::int_<14> >::type, \
515 boost::mpl::int_<13> >::type, \
516 boost::mpl::int_<12> >::type, \
517 boost::mpl::int_<11> >::type, \
518 boost::mpl::int_<10> >::type, \
519 boost::mpl::int_< 9> >::type, \
520 boost::mpl::int_< 8> >::type, \
521 boost::mpl::int_< 7> >::type, \
522 boost::mpl::int_< 6> >::type, \
523 boost::mpl::int_< 5> >::type, \
524 boost::mpl::int_< 4> >::type, \
525 boost::mpl::int_< 3> >::type, \
526 boost::mpl::int_< 2> >::type, \
527 boost::mpl::int_< 1> >::type, \
528 boost::mpl::int_< 0> >::type next_static_id; \
529 friend_or_not RCF::defined_ helper_func(T1 *, T2 *, next_static_id *);
532 #define RCF_CURRENT_STATIC_ID(current_static_id, helper_func, T1, T2) \
534 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
535 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
536 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
537 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
538 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
539 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
540 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
541 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
542 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
543 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
544 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<10> *) 0)) == sizeof(RCF::defined_)) >, \
545 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<11> *) 0)) == sizeof(RCF::defined_)) >, \
546 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<12> *) 0)) == sizeof(RCF::defined_)) >, \
547 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<13> *) 0)) == sizeof(RCF::defined_)) >, \
548 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<14> *) 0)) == sizeof(RCF::defined_)) >, \
549 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<15> *) 0)) == sizeof(RCF::defined_)) >, \
550 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<16> *) 0)) == sizeof(RCF::defined_)) >, \
551 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<17> *) 0)) == sizeof(RCF::defined_)) >, \
552 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<18> *) 0)) == sizeof(RCF::defined_)) >, \
553 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<19> *) 0)) == sizeof(RCF::defined_)) >, \
554 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<20> *) 0)) == sizeof(RCF::defined_)) >, \
555 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<21> *) 0)) == sizeof(RCF::defined_)) >, \
556 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<22> *) 0)) == sizeof(RCF::defined_)) >, \
557 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<23> *) 0)) == sizeof(RCF::defined_)) >, \
558 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<24> *) 0)) == sizeof(RCF::defined_)) >, \
559 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<25> *) 0)) == sizeof(RCF::defined_)) >, \
560 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<26> *) 0)) == sizeof(RCF::defined_)) >, \
561 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<27> *) 0)) == sizeof(RCF::defined_)) >, \
562 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<28> *) 0)) == sizeof(RCF::defined_)) >, \
563 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<29> *) 0)) == sizeof(RCF::defined_)) >, \
564 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<30> *) 0)) == sizeof(RCF::defined_)) >, \
565 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<31> *) 0)) == sizeof(RCF::defined_)) >, \
566 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<32> *) 0)) == sizeof(RCF::defined_)) >, \
567 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<33> *) 0)) == sizeof(RCF::defined_)) >, \
568 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<34> *) 0)) == sizeof(RCF::defined_)) >, \
569 boost::mpl::int_<34>, \
570 boost::mpl::int_<33> >::type, \
571 boost::mpl::int_<32> >::type, \
572 boost::mpl::int_<31> >::type, \
573 boost::mpl::int_<30> >::type, \
574 boost::mpl::int_<29> >::type, \
575 boost::mpl::int_<28> >::type, \
576 boost::mpl::int_<27> >::type, \
577 boost::mpl::int_<26> >::type, \
578 boost::mpl::int_<25> >::type, \
579 boost::mpl::int_<24> >::type, \
580 boost::mpl::int_<23> >::type, \
581 boost::mpl::int_<22> >::type, \
582 boost::mpl::int_<21> >::type, \
583 boost::mpl::int_<20> >::type, \
584 boost::mpl::int_<19> >::type, \
585 boost::mpl::int_<18> >::type, \
586 boost::mpl::int_<17> >::type, \
587 boost::mpl::int_<16> >::type, \
588 boost::mpl::int_<15> >::type, \
589 boost::mpl::int_<14> >::type, \
590 boost::mpl::int_<13> >::type, \
591 boost::mpl::int_<12> >::type, \
592 boost::mpl::int_<11> >::type, \
593 boost::mpl::int_<10> >::type, \
594 boost::mpl::int_< 9> >::type, \
595 boost::mpl::int_< 8> >::type, \
596 boost::mpl::int_< 7> >::type, \
597 boost::mpl::int_< 6> >::type, \
598 boost::mpl::int_< 5> >::type, \
599 boost::mpl::int_< 4> >::type, \
600 boost::mpl::int_< 3> >::type, \
601 boost::mpl::int_< 2> >::type, \
602 boost::mpl::int_< 1> >::type, \
603 boost::mpl::int_< 0> >::type, \
604 boost::mpl::int_<-1> >::type current_static_id;
607 #elif RCF_MAX_METHOD_COUNT <= 100
609 #define RCF_ADVANCE_STATIC_ID(next_static_id, helper_func, T1, T2, friend_or_not) \
611 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
612 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
613 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
614 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
615 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
616 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
617 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
618 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
619 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
620 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
621 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<10> *) 0)) == sizeof(RCF::defined_)) >, \
622 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<11> *) 0)) == sizeof(RCF::defined_)) >, \
623 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<12> *) 0)) == sizeof(RCF::defined_)) >, \
624 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<13> *) 0)) == sizeof(RCF::defined_)) >, \
625 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<14> *) 0)) == sizeof(RCF::defined_)) >, \
626 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<15> *) 0)) == sizeof(RCF::defined_)) >, \
627 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<16> *) 0)) == sizeof(RCF::defined_)) >, \
628 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<17> *) 0)) == sizeof(RCF::defined_)) >, \
629 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<18> *) 0)) == sizeof(RCF::defined_)) >, \
630 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<19> *) 0)) == sizeof(RCF::defined_)) >, \
631 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<20> *) 0)) == sizeof(RCF::defined_)) >, \
632 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<21> *) 0)) == sizeof(RCF::defined_)) >, \
633 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<22> *) 0)) == sizeof(RCF::defined_)) >, \
634 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<23> *) 0)) == sizeof(RCF::defined_)) >, \
635 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<24> *) 0)) == sizeof(RCF::defined_)) >, \
636 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<25> *) 0)) == sizeof(RCF::defined_)) >, \
637 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<26> *) 0)) == sizeof(RCF::defined_)) >, \
638 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<27> *) 0)) == sizeof(RCF::defined_)) >, \
639 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<28> *) 0)) == sizeof(RCF::defined_)) >, \
640 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<29> *) 0)) == sizeof(RCF::defined_)) >, \
641 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<30> *) 0)) == sizeof(RCF::defined_)) >, \
642 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<31> *) 0)) == sizeof(RCF::defined_)) >, \
643 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<32> *) 0)) == sizeof(RCF::defined_)) >, \
644 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<33> *) 0)) == sizeof(RCF::defined_)) >, \
645 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<34> *) 0)) == sizeof(RCF::defined_)) >, \
646 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<35> *) 0)) == sizeof(RCF::defined_)) >, \
647 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<36> *) 0)) == sizeof(RCF::defined_)) >, \
648 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<37> *) 0)) == sizeof(RCF::defined_)) >, \
649 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<38> *) 0)) == sizeof(RCF::defined_)) >, \
650 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<39> *) 0)) == sizeof(RCF::defined_)) >, \
651 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<40> *) 0)) == sizeof(RCF::defined_)) >, \
652 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<41> *) 0)) == sizeof(RCF::defined_)) >, \
653 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<42> *) 0)) == sizeof(RCF::defined_)) >, \
654 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<43> *) 0)) == sizeof(RCF::defined_)) >, \
655 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<44> *) 0)) == sizeof(RCF::defined_)) >, \
656 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<45> *) 0)) == sizeof(RCF::defined_)) >, \
657 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<46> *) 0)) == sizeof(RCF::defined_)) >, \
658 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<47> *) 0)) == sizeof(RCF::defined_)) >, \
659 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<48> *) 0)) == sizeof(RCF::defined_)) >, \
660 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<49> *) 0)) == sizeof(RCF::defined_)) >, \
661 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<50> *) 0)) == sizeof(RCF::defined_)) >, \
662 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<51> *) 0)) == sizeof(RCF::defined_)) >, \
663 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<52> *) 0)) == sizeof(RCF::defined_)) >, \
664 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<53> *) 0)) == sizeof(RCF::defined_)) >, \
665 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<54> *) 0)) == sizeof(RCF::defined_)) >, \
666 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<55> *) 0)) == sizeof(RCF::defined_)) >, \
667 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<56> *) 0)) == sizeof(RCF::defined_)) >, \
668 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<57> *) 0)) == sizeof(RCF::defined_)) >, \
669 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<58> *) 0)) == sizeof(RCF::defined_)) >, \
670 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<59> *) 0)) == sizeof(RCF::defined_)) >, \
671 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<60> *) 0)) == sizeof(RCF::defined_)) >, \
672 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<61> *) 0)) == sizeof(RCF::defined_)) >, \
673 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<62> *) 0)) == sizeof(RCF::defined_)) >, \
674 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<63> *) 0)) == sizeof(RCF::defined_)) >, \
675 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<64> *) 0)) == sizeof(RCF::defined_)) >, \
676 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<65> *) 0)) == sizeof(RCF::defined_)) >, \
677 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<66> *) 0)) == sizeof(RCF::defined_)) >, \
678 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<67> *) 0)) == sizeof(RCF::defined_)) >, \
679 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<68> *) 0)) == sizeof(RCF::defined_)) >, \
680 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<69> *) 0)) == sizeof(RCF::defined_)) >, \
681 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<70> *) 0)) == sizeof(RCF::defined_)) >, \
682 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<71> *) 0)) == sizeof(RCF::defined_)) >, \
683 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<72> *) 0)) == sizeof(RCF::defined_)) >, \
684 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<73> *) 0)) == sizeof(RCF::defined_)) >, \
685 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<74> *) 0)) == sizeof(RCF::defined_)) >, \
686 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<75> *) 0)) == sizeof(RCF::defined_)) >, \
687 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<76> *) 0)) == sizeof(RCF::defined_)) >, \
688 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<77> *) 0)) == sizeof(RCF::defined_)) >, \
689 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<78> *) 0)) == sizeof(RCF::defined_)) >, \
690 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<79> *) 0)) == sizeof(RCF::defined_)) >, \
691 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<80> *) 0)) == sizeof(RCF::defined_)) >, \
692 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<81> *) 0)) == sizeof(RCF::defined_)) >, \
693 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<82> *) 0)) == sizeof(RCF::defined_)) >, \
694 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<83> *) 0)) == sizeof(RCF::defined_)) >, \
695 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<84> *) 0)) == sizeof(RCF::defined_)) >, \
696 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<85> *) 0)) == sizeof(RCF::defined_)) >, \
697 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<86> *) 0)) == sizeof(RCF::defined_)) >, \
698 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<87> *) 0)) == sizeof(RCF::defined_)) >, \
699 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<88> *) 0)) == sizeof(RCF::defined_)) >, \
700 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<89> *) 0)) == sizeof(RCF::defined_)) >, \
701 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<90> *) 0)) == sizeof(RCF::defined_)) >, \
702 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<91> *) 0)) == sizeof(RCF::defined_)) >, \
703 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<92> *) 0)) == sizeof(RCF::defined_)) >, \
704 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<93> *) 0)) == sizeof(RCF::defined_)) >, \
705 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<94> *) 0)) == sizeof(RCF::defined_)) >, \
706 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<95> *) 0)) == sizeof(RCF::defined_)) >, \
707 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<96> *) 0)) == sizeof(RCF::defined_)) >, \
708 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<97> *) 0)) == sizeof(RCF::defined_)) >, \
709 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<98> *) 0)) == sizeof(RCF::defined_)) >, \
710 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<99> *) 0)) == sizeof(RCF::defined_)) >, \
711 boost::mpl::int_<100>, \
712 boost::mpl::int_<99> >::type, \
713 boost::mpl::int_<98> >::type, \
714 boost::mpl::int_<97> >::type, \
715 boost::mpl::int_<96> >::type, \
716 boost::mpl::int_<95> >::type, \
717 boost::mpl::int_<94> >::type, \
718 boost::mpl::int_<93> >::type, \
719 boost::mpl::int_<92> >::type, \
720 boost::mpl::int_<91> >::type, \
721 boost::mpl::int_<90> >::type, \
722 boost::mpl::int_<89> >::type, \
723 boost::mpl::int_<88> >::type, \
724 boost::mpl::int_<87> >::type, \
725 boost::mpl::int_<86> >::type, \
726 boost::mpl::int_<85> >::type, \
727 boost::mpl::int_<84> >::type, \
728 boost::mpl::int_<83> >::type, \
729 boost::mpl::int_<82> >::type, \
730 boost::mpl::int_<81> >::type, \
731 boost::mpl::int_<80> >::type, \
732 boost::mpl::int_<79> >::type, \
733 boost::mpl::int_<78> >::type, \
734 boost::mpl::int_<77> >::type, \
735 boost::mpl::int_<76> >::type, \
736 boost::mpl::int_<75> >::type, \
737 boost::mpl::int_<74> >::type, \
738 boost::mpl::int_<73> >::type, \
739 boost::mpl::int_<72> >::type, \
740 boost::mpl::int_<71> >::type, \
741 boost::mpl::int_<70> >::type, \
742 boost::mpl::int_<69> >::type, \
743 boost::mpl::int_<68> >::type, \
744 boost::mpl::int_<67> >::type, \
745 boost::mpl::int_<66> >::type, \
746 boost::mpl::int_<65> >::type, \
747 boost::mpl::int_<64> >::type, \
748 boost::mpl::int_<63> >::type, \
749 boost::mpl::int_<62> >::type, \
750 boost::mpl::int_<61> >::type, \
751 boost::mpl::int_<60> >::type, \
752 boost::mpl::int_<59> >::type, \
753 boost::mpl::int_<58> >::type, \
754 boost::mpl::int_<57> >::type, \
755 boost::mpl::int_<56> >::type, \
756 boost::mpl::int_<55> >::type, \
757 boost::mpl::int_<54> >::type, \
758 boost::mpl::int_<53> >::type, \
759 boost::mpl::int_<52> >::type, \
760 boost::mpl::int_<51> >::type, \
761 boost::mpl::int_<50> >::type, \
762 boost::mpl::int_<49> >::type, \
763 boost::mpl::int_<48> >::type, \
764 boost::mpl::int_<47> >::type, \
765 boost::mpl::int_<46> >::type, \
766 boost::mpl::int_<45> >::type, \
767 boost::mpl::int_<44> >::type, \
768 boost::mpl::int_<43> >::type, \
769 boost::mpl::int_<42> >::type, \
770 boost::mpl::int_<41> >::type, \
771 boost::mpl::int_<40> >::type, \
772 boost::mpl::int_<39> >::type, \
773 boost::mpl::int_<38> >::type, \
774 boost::mpl::int_<37> >::type, \
775 boost::mpl::int_<36> >::type, \
776 boost::mpl::int_<35> >::type, \
777 boost::mpl::int_<34> >::type, \
778 boost::mpl::int_<33> >::type, \
779 boost::mpl::int_<32> >::type, \
780 boost::mpl::int_<31> >::type, \
781 boost::mpl::int_<30> >::type, \
782 boost::mpl::int_<29> >::type, \
783 boost::mpl::int_<28> >::type, \
784 boost::mpl::int_<27> >::type, \
785 boost::mpl::int_<26> >::type, \
786 boost::mpl::int_<25> >::type, \
787 boost::mpl::int_<24> >::type, \
788 boost::mpl::int_<23> >::type, \
789 boost::mpl::int_<22> >::type, \
790 boost::mpl::int_<21> >::type, \
791 boost::mpl::int_<20> >::type, \
792 boost::mpl::int_<19> >::type, \
793 boost::mpl::int_<18> >::type, \
794 boost::mpl::int_<17> >::type, \
795 boost::mpl::int_<16> >::type, \
796 boost::mpl::int_<15> >::type, \
797 boost::mpl::int_<14> >::type, \
798 boost::mpl::int_<13> >::type, \
799 boost::mpl::int_<12> >::type, \
800 boost::mpl::int_<11> >::type, \
801 boost::mpl::int_<10> >::type, \
802 boost::mpl::int_< 9> >::type, \
803 boost::mpl::int_< 8> >::type, \
804 boost::mpl::int_< 7> >::type, \
805 boost::mpl::int_< 6> >::type, \
806 boost::mpl::int_< 5> >::type, \
807 boost::mpl::int_< 4> >::type, \
808 boost::mpl::int_< 3> >::type, \
809 boost::mpl::int_< 2> >::type, \
810 boost::mpl::int_< 1> >::type, \
811 boost::mpl::int_< 0> >::type next_static_id; \
812 friend_or_not RCF::defined_ helper_func(T1 *, T2 *, next_static_id *);
815 #define RCF_CURRENT_STATIC_ID(current_static_id, helper_func, T1, T2) \
817 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
818 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
819 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
820 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
821 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
822 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
823 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
824 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
825 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
826 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
827 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<10> *) 0)) == sizeof(RCF::defined_)) >, \
828 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<11> *) 0)) == sizeof(RCF::defined_)) >, \
829 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<12> *) 0)) == sizeof(RCF::defined_)) >, \
830 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<13> *) 0)) == sizeof(RCF::defined_)) >, \
831 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<14> *) 0)) == sizeof(RCF::defined_)) >, \
832 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<15> *) 0)) == sizeof(RCF::defined_)) >, \
833 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<16> *) 0)) == sizeof(RCF::defined_)) >, \
834 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<17> *) 0)) == sizeof(RCF::defined_)) >, \
835 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<18> *) 0)) == sizeof(RCF::defined_)) >, \
836 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<19> *) 0)) == sizeof(RCF::defined_)) >, \
837 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<20> *) 0)) == sizeof(RCF::defined_)) >, \
838 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<21> *) 0)) == sizeof(RCF::defined_)) >, \
839 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<22> *) 0)) == sizeof(RCF::defined_)) >, \
840 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<23> *) 0)) == sizeof(RCF::defined_)) >, \
841 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<24> *) 0)) == sizeof(RCF::defined_)) >, \
842 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<25> *) 0)) == sizeof(RCF::defined_)) >, \
843 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<26> *) 0)) == sizeof(RCF::defined_)) >, \
844 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<27> *) 0)) == sizeof(RCF::defined_)) >, \
845 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<28> *) 0)) == sizeof(RCF::defined_)) >, \
846 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<29> *) 0)) == sizeof(RCF::defined_)) >, \
847 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<30> *) 0)) == sizeof(RCF::defined_)) >, \
848 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<31> *) 0)) == sizeof(RCF::defined_)) >, \
849 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<32> *) 0)) == sizeof(RCF::defined_)) >, \
850 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<33> *) 0)) == sizeof(RCF::defined_)) >, \
851 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<34> *) 0)) == sizeof(RCF::defined_)) >, \
852 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<35> *) 0)) == sizeof(RCF::defined_)) >, \
853 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<36> *) 0)) == sizeof(RCF::defined_)) >, \
854 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<37> *) 0)) == sizeof(RCF::defined_)) >, \
855 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<38> *) 0)) == sizeof(RCF::defined_)) >, \
856 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<39> *) 0)) == sizeof(RCF::defined_)) >, \
857 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<40> *) 0)) == sizeof(RCF::defined_)) >, \
858 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<41> *) 0)) == sizeof(RCF::defined_)) >, \
859 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<42> *) 0)) == sizeof(RCF::defined_)) >, \
860 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<43> *) 0)) == sizeof(RCF::defined_)) >, \
861 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<44> *) 0)) == sizeof(RCF::defined_)) >, \
862 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<45> *) 0)) == sizeof(RCF::defined_)) >, \
863 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<46> *) 0)) == sizeof(RCF::defined_)) >, \
864 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<47> *) 0)) == sizeof(RCF::defined_)) >, \
865 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<48> *) 0)) == sizeof(RCF::defined_)) >, \
866 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<49> *) 0)) == sizeof(RCF::defined_)) >, \
867 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<50> *) 0)) == sizeof(RCF::defined_)) >, \
868 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<51> *) 0)) == sizeof(RCF::defined_)) >, \
869 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<52> *) 0)) == sizeof(RCF::defined_)) >, \
870 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<53> *) 0)) == sizeof(RCF::defined_)) >, \
871 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<54> *) 0)) == sizeof(RCF::defined_)) >, \
872 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<55> *) 0)) == sizeof(RCF::defined_)) >, \
873 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<56> *) 0)) == sizeof(RCF::defined_)) >, \
874 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<57> *) 0)) == sizeof(RCF::defined_)) >, \
875 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<58> *) 0)) == sizeof(RCF::defined_)) >, \
876 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<59> *) 0)) == sizeof(RCF::defined_)) >, \
877 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<60> *) 0)) == sizeof(RCF::defined_)) >, \
878 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<61> *) 0)) == sizeof(RCF::defined_)) >, \
879 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<62> *) 0)) == sizeof(RCF::defined_)) >, \
880 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<63> *) 0)) == sizeof(RCF::defined_)) >, \
881 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<64> *) 0)) == sizeof(RCF::defined_)) >, \
882 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<65> *) 0)) == sizeof(RCF::defined_)) >, \
883 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<66> *) 0)) == sizeof(RCF::defined_)) >, \
884 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<67> *) 0)) == sizeof(RCF::defined_)) >, \
885 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<68> *) 0)) == sizeof(RCF::defined_)) >, \
886 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<69> *) 0)) == sizeof(RCF::defined_)) >, \
887 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<70> *) 0)) == sizeof(RCF::defined_)) >, \
888 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<71> *) 0)) == sizeof(RCF::defined_)) >, \
889 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<72> *) 0)) == sizeof(RCF::defined_)) >, \
890 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<73> *) 0)) == sizeof(RCF::defined_)) >, \
891 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<74> *) 0)) == sizeof(RCF::defined_)) >, \
892 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<75> *) 0)) == sizeof(RCF::defined_)) >, \
893 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<76> *) 0)) == sizeof(RCF::defined_)) >, \
894 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<77> *) 0)) == sizeof(RCF::defined_)) >, \
895 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<78> *) 0)) == sizeof(RCF::defined_)) >, \
896 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<79> *) 0)) == sizeof(RCF::defined_)) >, \
897 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<80> *) 0)) == sizeof(RCF::defined_)) >, \
898 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<81> *) 0)) == sizeof(RCF::defined_)) >, \
899 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<82> *) 0)) == sizeof(RCF::defined_)) >, \
900 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<83> *) 0)) == sizeof(RCF::defined_)) >, \
901 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<84> *) 0)) == sizeof(RCF::defined_)) >, \
902 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<85> *) 0)) == sizeof(RCF::defined_)) >, \
903 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<86> *) 0)) == sizeof(RCF::defined_)) >, \
904 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<87> *) 0)) == sizeof(RCF::defined_)) >, \
905 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<88> *) 0)) == sizeof(RCF::defined_)) >, \
906 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<89> *) 0)) == sizeof(RCF::defined_)) >, \
907 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<90> *) 0)) == sizeof(RCF::defined_)) >, \
908 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<91> *) 0)) == sizeof(RCF::defined_)) >, \
909 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<92> *) 0)) == sizeof(RCF::defined_)) >, \
910 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<93> *) 0)) == sizeof(RCF::defined_)) >, \
911 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<94> *) 0)) == sizeof(RCF::defined_)) >, \
912 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<95> *) 0)) == sizeof(RCF::defined_)) >, \
913 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<96> *) 0)) == sizeof(RCF::defined_)) >, \
914 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<97> *) 0)) == sizeof(RCF::defined_)) >, \
915 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<98> *) 0)) == sizeof(RCF::defined_)) >, \
916 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<99> *) 0)) == sizeof(RCF::defined_)) >, \
917 boost::mpl::int_<99>, \
918 boost::mpl::int_<98> >::type, \
919 boost::mpl::int_<97> >::type, \
920 boost::mpl::int_<96> >::type, \
921 boost::mpl::int_<95> >::type, \
922 boost::mpl::int_<94> >::type, \
923 boost::mpl::int_<93> >::type, \
924 boost::mpl::int_<92> >::type, \
925 boost::mpl::int_<91> >::type, \
926 boost::mpl::int_<90> >::type, \
927 boost::mpl::int_<89> >::type, \
928 boost::mpl::int_<88> >::type, \
929 boost::mpl::int_<87> >::type, \
930 boost::mpl::int_<86> >::type, \
931 boost::mpl::int_<85> >::type, \
932 boost::mpl::int_<84> >::type, \
933 boost::mpl::int_<83> >::type, \
934 boost::mpl::int_<82> >::type, \
935 boost::mpl::int_<81> >::type, \
936 boost::mpl::int_<80> >::type, \
937 boost::mpl::int_<79> >::type, \
938 boost::mpl::int_<78> >::type, \
939 boost::mpl::int_<77> >::type, \
940 boost::mpl::int_<76> >::type, \
941 boost::mpl::int_<75> >::type, \
942 boost::mpl::int_<74> >::type, \
943 boost::mpl::int_<73> >::type, \
944 boost::mpl::int_<72> >::type, \
945 boost::mpl::int_<71> >::type, \
946 boost::mpl::int_<70> >::type, \
947 boost::mpl::int_<69> >::type, \
948 boost::mpl::int_<68> >::type, \
949 boost::mpl::int_<67> >::type, \
950 boost::mpl::int_<66> >::type, \
951 boost::mpl::int_<65> >::type, \
952 boost::mpl::int_<64> >::type, \
953 boost::mpl::int_<63> >::type, \
954 boost::mpl::int_<62> >::type, \
955 boost::mpl::int_<61> >::type, \
956 boost::mpl::int_<60> >::type, \
957 boost::mpl::int_<59> >::type, \
958 boost::mpl::int_<58> >::type, \
959 boost::mpl::int_<57> >::type, \
960 boost::mpl::int_<56> >::type, \
961 boost::mpl::int_<55> >::type, \
962 boost::mpl::int_<54> >::type, \
963 boost::mpl::int_<53> >::type, \
964 boost::mpl::int_<52> >::type, \
965 boost::mpl::int_<51> >::type, \
966 boost::mpl::int_<50> >::type, \
967 boost::mpl::int_<49> >::type, \
968 boost::mpl::int_<48> >::type, \
969 boost::mpl::int_<47> >::type, \
970 boost::mpl::int_<46> >::type, \
971 boost::mpl::int_<45> >::type, \
972 boost::mpl::int_<44> >::type, \
973 boost::mpl::int_<43> >::type, \
974 boost::mpl::int_<42> >::type, \
975 boost::mpl::int_<41> >::type, \
976 boost::mpl::int_<40> >::type, \
977 boost::mpl::int_<39> >::type, \
978 boost::mpl::int_<38> >::type, \
979 boost::mpl::int_<37> >::type, \
980 boost::mpl::int_<36> >::type, \
981 boost::mpl::int_<35> >::type, \
982 boost::mpl::int_<34> >::type, \
983 boost::mpl::int_<33> >::type, \
984 boost::mpl::int_<32> >::type, \
985 boost::mpl::int_<31> >::type, \
986 boost::mpl::int_<30> >::type, \
987 boost::mpl::int_<29> >::type, \
988 boost::mpl::int_<28> >::type, \
989 boost::mpl::int_<27> >::type, \
990 boost::mpl::int_<26> >::type, \
991 boost::mpl::int_<25> >::type, \
992 boost::mpl::int_<24> >::type, \
993 boost::mpl::int_<23> >::type, \
994 boost::mpl::int_<22> >::type, \
995 boost::mpl::int_<21> >::type, \
996 boost::mpl::int_<20> >::type, \
997 boost::mpl::int_<19> >::type, \
998 boost::mpl::int_<18> >::type, \
999 boost::mpl::int_<17> >::type, \
1000 boost::mpl::int_<16> >::type, \
1001 boost::mpl::int_<15> >::type, \
1002 boost::mpl::int_<14> >::type, \
1003 boost::mpl::int_<13> >::type, \
1004 boost::mpl::int_<12> >::type, \
1005 boost::mpl::int_<11> >::type, \
1006 boost::mpl::int_<10> >::type, \
1007 boost::mpl::int_< 9> >::type, \
1008 boost::mpl::int_< 8> >::type, \
1009 boost::mpl::int_< 7> >::type, \
1010 boost::mpl::int_< 6> >::type, \
1011 boost::mpl::int_< 5> >::type, \
1012 boost::mpl::int_< 4> >::type, \
1013 boost::mpl::int_< 3> >::type, \
1014 boost::mpl::int_< 2> >::type, \
1015 boost::mpl::int_< 1> >::type, \
1016 boost::mpl::int_< 0> >::type, \
1017 boost::mpl::int_<-1> >::type current_static_id;
1019 #elif RCF_MAX_METHOD_COUNT <= 200
1021 #define RCF_ADVANCE_STATIC_ID(next_static_id, helper_func, T1, T2, friend_or_not) \
1023 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
1024 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
1025 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
1026 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
1027 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
1028 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
1029 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
1030 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
1031 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
1032 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
1033 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 10> *) 0)) == sizeof(RCF::defined_)) >, \
1034 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 11> *) 0)) == sizeof(RCF::defined_)) >, \
1035 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 12> *) 0)) == sizeof(RCF::defined_)) >, \
1036 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 13> *) 0)) == sizeof(RCF::defined_)) >, \
1037 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 14> *) 0)) == sizeof(RCF::defined_)) >, \
1038 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 15> *) 0)) == sizeof(RCF::defined_)) >, \
1039 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 16> *) 0)) == sizeof(RCF::defined_)) >, \
1040 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 17> *) 0)) == sizeof(RCF::defined_)) >, \
1041 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 18> *) 0)) == sizeof(RCF::defined_)) >, \
1042 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 19> *) 0)) == sizeof(RCF::defined_)) >, \
1043 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 20> *) 0)) == sizeof(RCF::defined_)) >, \
1044 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 21> *) 0)) == sizeof(RCF::defined_)) >, \
1045 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 22> *) 0)) == sizeof(RCF::defined_)) >, \
1046 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 23> *) 0)) == sizeof(RCF::defined_)) >, \
1047 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 24> *) 0)) == sizeof(RCF::defined_)) >, \
1048 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 25> *) 0)) == sizeof(RCF::defined_)) >, \
1049 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 26> *) 0)) == sizeof(RCF::defined_)) >, \
1050 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 27> *) 0)) == sizeof(RCF::defined_)) >, \
1051 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 28> *) 0)) == sizeof(RCF::defined_)) >, \
1052 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 29> *) 0)) == sizeof(RCF::defined_)) >, \
1053 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 30> *) 0)) == sizeof(RCF::defined_)) >, \
1054 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 31> *) 0)) == sizeof(RCF::defined_)) >, \
1055 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 32> *) 0)) == sizeof(RCF::defined_)) >, \
1056 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 33> *) 0)) == sizeof(RCF::defined_)) >, \
1057 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 34> *) 0)) == sizeof(RCF::defined_)) >, \
1058 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 35> *) 0)) == sizeof(RCF::defined_)) >, \
1059 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 36> *) 0)) == sizeof(RCF::defined_)) >, \
1060 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 37> *) 0)) == sizeof(RCF::defined_)) >, \
1061 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 38> *) 0)) == sizeof(RCF::defined_)) >, \
1062 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 39> *) 0)) == sizeof(RCF::defined_)) >, \
1063 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 40> *) 0)) == sizeof(RCF::defined_)) >, \
1064 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 41> *) 0)) == sizeof(RCF::defined_)) >, \
1065 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 42> *) 0)) == sizeof(RCF::defined_)) >, \
1066 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 43> *) 0)) == sizeof(RCF::defined_)) >, \
1067 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 44> *) 0)) == sizeof(RCF::defined_)) >, \
1068 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 45> *) 0)) == sizeof(RCF::defined_)) >, \
1069 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 46> *) 0)) == sizeof(RCF::defined_)) >, \
1070 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 47> *) 0)) == sizeof(RCF::defined_)) >, \
1071 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 48> *) 0)) == sizeof(RCF::defined_)) >, \
1072 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 49> *) 0)) == sizeof(RCF::defined_)) >, \
1073 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 50> *) 0)) == sizeof(RCF::defined_)) >, \
1074 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 51> *) 0)) == sizeof(RCF::defined_)) >, \
1075 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 52> *) 0)) == sizeof(RCF::defined_)) >, \
1076 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 53> *) 0)) == sizeof(RCF::defined_)) >, \
1077 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 54> *) 0)) == sizeof(RCF::defined_)) >, \
1078 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 55> *) 0)) == sizeof(RCF::defined_)) >, \
1079 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 56> *) 0)) == sizeof(RCF::defined_)) >, \
1080 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 57> *) 0)) == sizeof(RCF::defined_)) >, \
1081 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 58> *) 0)) == sizeof(RCF::defined_)) >, \
1082 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 59> *) 0)) == sizeof(RCF::defined_)) >, \
1083 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 60> *) 0)) == sizeof(RCF::defined_)) >, \
1084 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 61> *) 0)) == sizeof(RCF::defined_)) >, \
1085 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 62> *) 0)) == sizeof(RCF::defined_)) >, \
1086 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 63> *) 0)) == sizeof(RCF::defined_)) >, \
1087 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 64> *) 0)) == sizeof(RCF::defined_)) >, \
1088 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 65> *) 0)) == sizeof(RCF::defined_)) >, \
1089 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 66> *) 0)) == sizeof(RCF::defined_)) >, \
1090 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 67> *) 0)) == sizeof(RCF::defined_)) >, \
1091 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 68> *) 0)) == sizeof(RCF::defined_)) >, \
1092 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 69> *) 0)) == sizeof(RCF::defined_)) >, \
1093 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 70> *) 0)) == sizeof(RCF::defined_)) >, \
1094 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 71> *) 0)) == sizeof(RCF::defined_)) >, \
1095 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 72> *) 0)) == sizeof(RCF::defined_)) >, \
1096 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 73> *) 0)) == sizeof(RCF::defined_)) >, \
1097 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 74> *) 0)) == sizeof(RCF::defined_)) >, \
1098 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 75> *) 0)) == sizeof(RCF::defined_)) >, \
1099 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 76> *) 0)) == sizeof(RCF::defined_)) >, \
1100 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 77> *) 0)) == sizeof(RCF::defined_)) >, \
1101 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 78> *) 0)) == sizeof(RCF::defined_)) >, \
1102 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 79> *) 0)) == sizeof(RCF::defined_)) >, \
1103 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 80> *) 0)) == sizeof(RCF::defined_)) >, \
1104 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 81> *) 0)) == sizeof(RCF::defined_)) >, \
1105 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 82> *) 0)) == sizeof(RCF::defined_)) >, \
1106 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 83> *) 0)) == sizeof(RCF::defined_)) >, \
1107 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 84> *) 0)) == sizeof(RCF::defined_)) >, \
1108 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 85> *) 0)) == sizeof(RCF::defined_)) >, \
1109 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 86> *) 0)) == sizeof(RCF::defined_)) >, \
1110 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 87> *) 0)) == sizeof(RCF::defined_)) >, \
1111 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 88> *) 0)) == sizeof(RCF::defined_)) >, \
1112 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 89> *) 0)) == sizeof(RCF::defined_)) >, \
1113 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 90> *) 0)) == sizeof(RCF::defined_)) >, \
1114 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 91> *) 0)) == sizeof(RCF::defined_)) >, \
1115 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 92> *) 0)) == sizeof(RCF::defined_)) >, \
1116 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 93> *) 0)) == sizeof(RCF::defined_)) >, \
1117 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 94> *) 0)) == sizeof(RCF::defined_)) >, \
1118 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 95> *) 0)) == sizeof(RCF::defined_)) >, \
1119 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 96> *) 0)) == sizeof(RCF::defined_)) >, \
1120 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 97> *) 0)) == sizeof(RCF::defined_)) >, \
1121 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 98> *) 0)) == sizeof(RCF::defined_)) >, \
1122 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 99> *) 0)) == sizeof(RCF::defined_)) >, \
1123 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<100>*) 0)) == sizeof(RCF::defined_)) >, \
1124 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<101> *) 0)) == sizeof(RCF::defined_)) >, \
1125 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<102> *) 0)) == sizeof(RCF::defined_)) >, \
1126 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<103> *) 0)) == sizeof(RCF::defined_)) >, \
1127 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<104> *) 0)) == sizeof(RCF::defined_)) >, \
1128 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<105> *) 0)) == sizeof(RCF::defined_)) >, \
1129 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<106> *) 0)) == sizeof(RCF::defined_)) >, \
1130 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<107> *) 0)) == sizeof(RCF::defined_)) >, \
1131 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<108> *) 0)) == sizeof(RCF::defined_)) >, \
1132 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<109> *) 0)) == sizeof(RCF::defined_)) >, \
1133 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<110> *) 0)) == sizeof(RCF::defined_)) >, \
1134 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<111> *) 0)) == sizeof(RCF::defined_)) >, \
1135 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<112> *) 0)) == sizeof(RCF::defined_)) >, \
1136 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<113> *) 0)) == sizeof(RCF::defined_)) >, \
1137 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<114> *) 0)) == sizeof(RCF::defined_)) >, \
1138 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<115> *) 0)) == sizeof(RCF::defined_)) >, \
1139 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<116> *) 0)) == sizeof(RCF::defined_)) >, \
1140 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<117> *) 0)) == sizeof(RCF::defined_)) >, \
1141 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<118> *) 0)) == sizeof(RCF::defined_)) >, \
1142 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<119> *) 0)) == sizeof(RCF::defined_)) >, \
1143 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<120> *) 0)) == sizeof(RCF::defined_)) >, \
1144 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<121> *) 0)) == sizeof(RCF::defined_)) >, \
1145 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<122> *) 0)) == sizeof(RCF::defined_)) >, \
1146 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<123> *) 0)) == sizeof(RCF::defined_)) >, \
1147 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<124> *) 0)) == sizeof(RCF::defined_)) >, \
1148 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<125> *) 0)) == sizeof(RCF::defined_)) >, \
1149 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<126> *) 0)) == sizeof(RCF::defined_)) >, \
1150 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<127> *) 0)) == sizeof(RCF::defined_)) >, \
1151 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<128> *) 0)) == sizeof(RCF::defined_)) >, \
1152 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<129> *) 0)) == sizeof(RCF::defined_)) >, \
1153 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<130> *) 0)) == sizeof(RCF::defined_)) >, \
1154 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<131> *) 0)) == sizeof(RCF::defined_)) >, \
1155 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<132> *) 0)) == sizeof(RCF::defined_)) >, \
1156 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<133> *) 0)) == sizeof(RCF::defined_)) >, \
1157 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<134> *) 0)) == sizeof(RCF::defined_)) >, \
1158 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<135> *) 0)) == sizeof(RCF::defined_)) >, \
1159 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<136> *) 0)) == sizeof(RCF::defined_)) >, \
1160 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<137> *) 0)) == sizeof(RCF::defined_)) >, \
1161 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<138> *) 0)) == sizeof(RCF::defined_)) >, \
1162 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<139> *) 0)) == sizeof(RCF::defined_)) >, \
1163 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<140> *) 0)) == sizeof(RCF::defined_)) >, \
1164 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<141> *) 0)) == sizeof(RCF::defined_)) >, \
1165 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<142> *) 0)) == sizeof(RCF::defined_)) >, \
1166 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<143> *) 0)) == sizeof(RCF::defined_)) >, \
1167 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<144> *) 0)) == sizeof(RCF::defined_)) >, \
1168 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<145> *) 0)) == sizeof(RCF::defined_)) >, \
1169 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<146> *) 0)) == sizeof(RCF::defined_)) >, \
1170 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<147> *) 0)) == sizeof(RCF::defined_)) >, \
1171 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<148> *) 0)) == sizeof(RCF::defined_)) >, \
1172 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<149> *) 0)) == sizeof(RCF::defined_)) >, \
1173 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<150> *) 0)) == sizeof(RCF::defined_)) >, \
1174 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<151> *) 0)) == sizeof(RCF::defined_)) >, \
1175 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<152> *) 0)) == sizeof(RCF::defined_)) >, \
1176 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<153> *) 0)) == sizeof(RCF::defined_)) >, \
1177 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<154> *) 0)) == sizeof(RCF::defined_)) >, \
1178 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<155> *) 0)) == sizeof(RCF::defined_)) >, \
1179 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<156> *) 0)) == sizeof(RCF::defined_)) >, \
1180 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<157> *) 0)) == sizeof(RCF::defined_)) >, \
1181 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<158> *) 0)) == sizeof(RCF::defined_)) >, \
1182 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<159> *) 0)) == sizeof(RCF::defined_)) >, \
1183 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<160> *) 0)) == sizeof(RCF::defined_)) >, \
1184 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<161> *) 0)) == sizeof(RCF::defined_)) >, \
1185 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<162> *) 0)) == sizeof(RCF::defined_)) >, \
1186 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<163> *) 0)) == sizeof(RCF::defined_)) >, \
1187 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<164> *) 0)) == sizeof(RCF::defined_)) >, \
1188 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<165> *) 0)) == sizeof(RCF::defined_)) >, \
1189 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<166> *) 0)) == sizeof(RCF::defined_)) >, \
1190 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<167> *) 0)) == sizeof(RCF::defined_)) >, \
1191 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<168> *) 0)) == sizeof(RCF::defined_)) >, \
1192 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<169> *) 0)) == sizeof(RCF::defined_)) >, \
1193 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<170> *) 0)) == sizeof(RCF::defined_)) >, \
1194 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<171> *) 0)) == sizeof(RCF::defined_)) >, \
1195 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<172> *) 0)) == sizeof(RCF::defined_)) >, \
1196 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<173> *) 0)) == sizeof(RCF::defined_)) >, \
1197 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<174> *) 0)) == sizeof(RCF::defined_)) >, \
1198 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<175> *) 0)) == sizeof(RCF::defined_)) >, \
1199 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<176> *) 0)) == sizeof(RCF::defined_)) >, \
1200 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<177> *) 0)) == sizeof(RCF::defined_)) >, \
1201 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<178> *) 0)) == sizeof(RCF::defined_)) >, \
1202 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<179> *) 0)) == sizeof(RCF::defined_)) >, \
1203 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<180> *) 0)) == sizeof(RCF::defined_)) >, \
1204 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<181> *) 0)) == sizeof(RCF::defined_)) >, \
1205 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<182> *) 0)) == sizeof(RCF::defined_)) >, \
1206 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<183> *) 0)) == sizeof(RCF::defined_)) >, \
1207 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<184> *) 0)) == sizeof(RCF::defined_)) >, \
1208 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<185> *) 0)) == sizeof(RCF::defined_)) >, \
1209 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<186> *) 0)) == sizeof(RCF::defined_)) >, \
1210 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<187> *) 0)) == sizeof(RCF::defined_)) >, \
1211 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<188> *) 0)) == sizeof(RCF::defined_)) >, \
1212 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<189> *) 0)) == sizeof(RCF::defined_)) >, \
1213 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<190> *) 0)) == sizeof(RCF::defined_)) >, \
1214 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<191> *) 0)) == sizeof(RCF::defined_)) >, \
1215 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<192> *) 0)) == sizeof(RCF::defined_)) >, \
1216 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<193> *) 0)) == sizeof(RCF::defined_)) >, \
1217 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<194> *) 0)) == sizeof(RCF::defined_)) >, \
1218 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<195> *) 0)) == sizeof(RCF::defined_)) >, \
1219 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<196> *) 0)) == sizeof(RCF::defined_)) >, \
1220 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<197> *) 0)) == sizeof(RCF::defined_)) >, \
1221 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<198> *) 0)) == sizeof(RCF::defined_)) >, \
1222 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<199> *) 0)) == sizeof(RCF::defined_)) >, \
1223 boost::mpl::int_<200>, \
1224 boost::mpl::int_<199> >::type, \
1225 boost::mpl::int_<198> >::type, \
1226 boost::mpl::int_<197> >::type, \
1227 boost::mpl::int_<196> >::type, \
1228 boost::mpl::int_<195> >::type, \
1229 boost::mpl::int_<194> >::type, \
1230 boost::mpl::int_<193> >::type, \
1231 boost::mpl::int_<192> >::type, \
1232 boost::mpl::int_<191> >::type, \
1233 boost::mpl::int_<190> >::type, \
1234 boost::mpl::int_<189> >::type, \
1235 boost::mpl::int_<188> >::type, \
1236 boost::mpl::int_<187> >::type, \
1237 boost::mpl::int_<186> >::type, \
1238 boost::mpl::int_<185> >::type, \
1239 boost::mpl::int_<184> >::type, \
1240 boost::mpl::int_<183> >::type, \
1241 boost::mpl::int_<182> >::type, \
1242 boost::mpl::int_<181> >::type, \
1243 boost::mpl::int_<180> >::type, \
1244 boost::mpl::int_<179> >::type, \
1245 boost::mpl::int_<178> >::type, \
1246 boost::mpl::int_<177> >::type, \
1247 boost::mpl::int_<176> >::type, \
1248 boost::mpl::int_<175> >::type, \
1249 boost::mpl::int_<174> >::type, \
1250 boost::mpl::int_<173> >::type, \
1251 boost::mpl::int_<172> >::type, \
1252 boost::mpl::int_<171> >::type, \
1253 boost::mpl::int_<170> >::type, \
1254 boost::mpl::int_<169> >::type, \
1255 boost::mpl::int_<168> >::type, \
1256 boost::mpl::int_<167> >::type, \
1257 boost::mpl::int_<166> >::type, \
1258 boost::mpl::int_<165> >::type, \
1259 boost::mpl::int_<164> >::type, \
1260 boost::mpl::int_<163> >::type, \
1261 boost::mpl::int_<162> >::type, \
1262 boost::mpl::int_<161> >::type, \
1263 boost::mpl::int_<160> >::type, \
1264 boost::mpl::int_<159> >::type, \
1265 boost::mpl::int_<158> >::type, \
1266 boost::mpl::int_<157> >::type, \
1267 boost::mpl::int_<156> >::type, \
1268 boost::mpl::int_<155> >::type, \
1269 boost::mpl::int_<154> >::type, \
1270 boost::mpl::int_<153> >::type, \
1271 boost::mpl::int_<152> >::type, \
1272 boost::mpl::int_<151> >::type, \
1273 boost::mpl::int_<150> >::type, \
1274 boost::mpl::int_<149> >::type, \
1275 boost::mpl::int_<148> >::type, \
1276 boost::mpl::int_<147> >::type, \
1277 boost::mpl::int_<146> >::type, \
1278 boost::mpl::int_<145> >::type, \
1279 boost::mpl::int_<144> >::type, \
1280 boost::mpl::int_<143> >::type, \
1281 boost::mpl::int_<142> >::type, \
1282 boost::mpl::int_<141> >::type, \
1283 boost::mpl::int_<140> >::type, \
1284 boost::mpl::int_<139> >::type, \
1285 boost::mpl::int_<138> >::type, \
1286 boost::mpl::int_<137> >::type, \
1287 boost::mpl::int_<136> >::type, \
1288 boost::mpl::int_<135> >::type, \
1289 boost::mpl::int_<134> >::type, \
1290 boost::mpl::int_<133> >::type, \
1291 boost::mpl::int_<132> >::type, \
1292 boost::mpl::int_<131> >::type, \
1293 boost::mpl::int_<130> >::type, \
1294 boost::mpl::int_<129> >::type, \
1295 boost::mpl::int_<128> >::type, \
1296 boost::mpl::int_<127> >::type, \
1297 boost::mpl::int_<126> >::type, \
1298 boost::mpl::int_<125> >::type, \
1299 boost::mpl::int_<124> >::type, \
1300 boost::mpl::int_<123> >::type, \
1301 boost::mpl::int_<122> >::type, \
1302 boost::mpl::int_<121> >::type, \
1303 boost::mpl::int_<120> >::type, \
1304 boost::mpl::int_<119> >::type, \
1305 boost::mpl::int_<118> >::type, \
1306 boost::mpl::int_<117> >::type, \
1307 boost::mpl::int_<116> >::type, \
1308 boost::mpl::int_<115> >::type, \
1309 boost::mpl::int_<114> >::type, \
1310 boost::mpl::int_<113> >::type, \
1311 boost::mpl::int_<112> >::type, \
1312 boost::mpl::int_<111> >::type, \
1313 boost::mpl::int_<110> >::type, \
1314 boost::mpl::int_<109> >::type, \
1315 boost::mpl::int_<108> >::type, \
1316 boost::mpl::int_<107> >::type, \
1317 boost::mpl::int_<106> >::type, \
1318 boost::mpl::int_<105> >::type, \
1319 boost::mpl::int_<104> >::type, \
1320 boost::mpl::int_<103> >::type, \
1321 boost::mpl::int_<102> >::type, \
1322 boost::mpl::int_<101> >::type, \
1323 boost::mpl::int_<100> >::type, \
1324 boost::mpl::int_< 99> >::type, \
1325 boost::mpl::int_< 98> >::type, \
1326 boost::mpl::int_< 97> >::type, \
1327 boost::mpl::int_< 96> >::type, \
1328 boost::mpl::int_< 95> >::type, \
1329 boost::mpl::int_< 94> >::type, \
1330 boost::mpl::int_< 93> >::type, \
1331 boost::mpl::int_< 92> >::type, \
1332 boost::mpl::int_< 91> >::type, \
1333 boost::mpl::int_< 90> >::type, \
1334 boost::mpl::int_< 89> >::type, \
1335 boost::mpl::int_< 88> >::type, \
1336 boost::mpl::int_< 87> >::type, \
1337 boost::mpl::int_< 86> >::type, \
1338 boost::mpl::int_< 85> >::type, \
1339 boost::mpl::int_< 84> >::type, \
1340 boost::mpl::int_< 83> >::type, \
1341 boost::mpl::int_< 82> >::type, \
1342 boost::mpl::int_< 81> >::type, \
1343 boost::mpl::int_< 80> >::type, \
1344 boost::mpl::int_< 79> >::type, \
1345 boost::mpl::int_< 78> >::type, \
1346 boost::mpl::int_< 77> >::type, \
1347 boost::mpl::int_< 76> >::type, \
1348 boost::mpl::int_< 75> >::type, \
1349 boost::mpl::int_< 74> >::type, \
1350 boost::mpl::int_< 73> >::type, \
1351 boost::mpl::int_< 72> >::type, \
1352 boost::mpl::int_< 71> >::type, \
1353 boost::mpl::int_< 70> >::type, \
1354 boost::mpl::int_< 69> >::type, \
1355 boost::mpl::int_< 68> >::type, \
1356 boost::mpl::int_< 67> >::type, \
1357 boost::mpl::int_< 66> >::type, \
1358 boost::mpl::int_< 65> >::type, \
1359 boost::mpl::int_< 64> >::type, \
1360 boost::mpl::int_< 63> >::type, \
1361 boost::mpl::int_< 62> >::type, \
1362 boost::mpl::int_< 61> >::type, \
1363 boost::mpl::int_< 60> >::type, \
1364 boost::mpl::int_< 59> >::type, \
1365 boost::mpl::int_< 58> >::type, \
1366 boost::mpl::int_< 57> >::type, \
1367 boost::mpl::int_< 56> >::type, \
1368 boost::mpl::int_< 55> >::type, \
1369 boost::mpl::int_< 54> >::type, \
1370 boost::mpl::int_< 53> >::type, \
1371 boost::mpl::int_< 52> >::type, \
1372 boost::mpl::int_< 51> >::type, \
1373 boost::mpl::int_< 50> >::type, \
1374 boost::mpl::int_< 49> >::type, \
1375 boost::mpl::int_< 48> >::type, \
1376 boost::mpl::int_< 47> >::type, \
1377 boost::mpl::int_< 46> >::type, \
1378 boost::mpl::int_< 45> >::type, \
1379 boost::mpl::int_< 44> >::type, \
1380 boost::mpl::int_< 43> >::type, \
1381 boost::mpl::int_< 42> >::type, \
1382 boost::mpl::int_< 41> >::type, \
1383 boost::mpl::int_< 40> >::type, \
1384 boost::mpl::int_< 39> >::type, \
1385 boost::mpl::int_< 38> >::type, \
1386 boost::mpl::int_< 37> >::type, \
1387 boost::mpl::int_< 36> >::type, \
1388 boost::mpl::int_< 35> >::type, \
1389 boost::mpl::int_< 34> >::type, \
1390 boost::mpl::int_< 33> >::type, \
1391 boost::mpl::int_< 32> >::type, \
1392 boost::mpl::int_< 31> >::type, \
1393 boost::mpl::int_< 30> >::type, \
1394 boost::mpl::int_< 29> >::type, \
1395 boost::mpl::int_< 28> >::type, \
1396 boost::mpl::int_< 27> >::type, \
1397 boost::mpl::int_< 26> >::type, \
1398 boost::mpl::int_< 25> >::type, \
1399 boost::mpl::int_< 24> >::type, \
1400 boost::mpl::int_< 23> >::type, \
1401 boost::mpl::int_< 22> >::type, \
1402 boost::mpl::int_< 21> >::type, \
1403 boost::mpl::int_< 20> >::type, \
1404 boost::mpl::int_< 19> >::type, \
1405 boost::mpl::int_< 18> >::type, \
1406 boost::mpl::int_< 17> >::type, \
1407 boost::mpl::int_< 16> >::type, \
1408 boost::mpl::int_< 15> >::type, \
1409 boost::mpl::int_< 14> >::type, \
1410 boost::mpl::int_< 13> >::type, \
1411 boost::mpl::int_< 12> >::type, \
1412 boost::mpl::int_< 11> >::type, \
1413 boost::mpl::int_< 10> >::type, \
1414 boost::mpl::int_< 9> >::type, \
1415 boost::mpl::int_< 8> >::type, \
1416 boost::mpl::int_< 7> >::type, \
1417 boost::mpl::int_< 6> >::type, \
1418 boost::mpl::int_< 5> >::type, \
1419 boost::mpl::int_< 4> >::type, \
1420 boost::mpl::int_< 3> >::type, \
1421 boost::mpl::int_< 2> >::type, \
1422 boost::mpl::int_< 1> >::type, \
1423 boost::mpl::int_< 0> >::type next_static_id; \
1424 friend_or_not RCF::defined_ helper_func(T1 *, T2 *, next_static_id *);
1427 #define RCF_CURRENT_STATIC_ID(current_static_id, helper_func, T1, T2) \
1429 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 0> *) 0)) == sizeof(RCF::defined_)) >, \
1430 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 1> *) 0)) == sizeof(RCF::defined_)) >, \
1431 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 2> *) 0)) == sizeof(RCF::defined_)) >, \
1432 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 3> *) 0)) == sizeof(RCF::defined_)) >, \
1433 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 4> *) 0)) == sizeof(RCF::defined_)) >, \
1434 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 5> *) 0)) == sizeof(RCF::defined_)) >, \
1435 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 6> *) 0)) == sizeof(RCF::defined_)) >, \
1436 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 7> *) 0)) == sizeof(RCF::defined_)) >, \
1437 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 8> *) 0)) == sizeof(RCF::defined_)) >, \
1438 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 9> *) 0)) == sizeof(RCF::defined_)) >, \
1439 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 10> *) 0)) == sizeof(RCF::defined_)) >, \
1440 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 11> *) 0)) == sizeof(RCF::defined_)) >, \
1441 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 12> *) 0)) == sizeof(RCF::defined_)) >, \
1442 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 13> *) 0)) == sizeof(RCF::defined_)) >, \
1443 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 14> *) 0)) == sizeof(RCF::defined_)) >, \
1444 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 15> *) 0)) == sizeof(RCF::defined_)) >, \
1445 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 16> *) 0)) == sizeof(RCF::defined_)) >, \
1446 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 17> *) 0)) == sizeof(RCF::defined_)) >, \
1447 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 18> *) 0)) == sizeof(RCF::defined_)) >, \
1448 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 19> *) 0)) == sizeof(RCF::defined_)) >, \
1449 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 20> *) 0)) == sizeof(RCF::defined_)) >, \
1450 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 21> *) 0)) == sizeof(RCF::defined_)) >, \
1451 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 22> *) 0)) == sizeof(RCF::defined_)) >, \
1452 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 23> *) 0)) == sizeof(RCF::defined_)) >, \
1453 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 24> *) 0)) == sizeof(RCF::defined_)) >, \
1454 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 25> *) 0)) == sizeof(RCF::defined_)) >, \
1455 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 26> *) 0)) == sizeof(RCF::defined_)) >, \
1456 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 27> *) 0)) == sizeof(RCF::defined_)) >, \
1457 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 28> *) 0)) == sizeof(RCF::defined_)) >, \
1458 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 29> *) 0)) == sizeof(RCF::defined_)) >, \
1459 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 30> *) 0)) == sizeof(RCF::defined_)) >, \
1460 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 31> *) 0)) == sizeof(RCF::defined_)) >, \
1461 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 32> *) 0)) == sizeof(RCF::defined_)) >, \
1462 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 33> *) 0)) == sizeof(RCF::defined_)) >, \
1463 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 34> *) 0)) == sizeof(RCF::defined_)) >, \
1464 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 35> *) 0)) == sizeof(RCF::defined_)) >, \
1465 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 36> *) 0)) == sizeof(RCF::defined_)) >, \
1466 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 37> *) 0)) == sizeof(RCF::defined_)) >, \
1467 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 38> *) 0)) == sizeof(RCF::defined_)) >, \
1468 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 39> *) 0)) == sizeof(RCF::defined_)) >, \
1469 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 40> *) 0)) == sizeof(RCF::defined_)) >, \
1470 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 41> *) 0)) == sizeof(RCF::defined_)) >, \
1471 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 42> *) 0)) == sizeof(RCF::defined_)) >, \
1472 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 43> *) 0)) == sizeof(RCF::defined_)) >, \
1473 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 44> *) 0)) == sizeof(RCF::defined_)) >, \
1474 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 45> *) 0)) == sizeof(RCF::defined_)) >, \
1475 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 46> *) 0)) == sizeof(RCF::defined_)) >, \
1476 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 47> *) 0)) == sizeof(RCF::defined_)) >, \
1477 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 48> *) 0)) == sizeof(RCF::defined_)) >, \
1478 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 49> *) 0)) == sizeof(RCF::defined_)) >, \
1479 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 50> *) 0)) == sizeof(RCF::defined_)) >, \
1480 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 51> *) 0)) == sizeof(RCF::defined_)) >, \
1481 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 52> *) 0)) == sizeof(RCF::defined_)) >, \
1482 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 53> *) 0)) == sizeof(RCF::defined_)) >, \
1483 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 54> *) 0)) == sizeof(RCF::defined_)) >, \
1484 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 55> *) 0)) == sizeof(RCF::defined_)) >, \
1485 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 56> *) 0)) == sizeof(RCF::defined_)) >, \
1486 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 57> *) 0)) == sizeof(RCF::defined_)) >, \
1487 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 58> *) 0)) == sizeof(RCF::defined_)) >, \
1488 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 59> *) 0)) == sizeof(RCF::defined_)) >, \
1489 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 60> *) 0)) == sizeof(RCF::defined_)) >, \
1490 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 61> *) 0)) == sizeof(RCF::defined_)) >, \
1491 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 62> *) 0)) == sizeof(RCF::defined_)) >, \
1492 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 63> *) 0)) == sizeof(RCF::defined_)) >, \
1493 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 64> *) 0)) == sizeof(RCF::defined_)) >, \
1494 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 65> *) 0)) == sizeof(RCF::defined_)) >, \
1495 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 66> *) 0)) == sizeof(RCF::defined_)) >, \
1496 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 67> *) 0)) == sizeof(RCF::defined_)) >, \
1497 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 68> *) 0)) == sizeof(RCF::defined_)) >, \
1498 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 69> *) 0)) == sizeof(RCF::defined_)) >, \
1499 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 70> *) 0)) == sizeof(RCF::defined_)) >, \
1500 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 71> *) 0)) == sizeof(RCF::defined_)) >, \
1501 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 72> *) 0)) == sizeof(RCF::defined_)) >, \
1502 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 73> *) 0)) == sizeof(RCF::defined_)) >, \
1503 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 74> *) 0)) == sizeof(RCF::defined_)) >, \
1504 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 75> *) 0)) == sizeof(RCF::defined_)) >, \
1505 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 76> *) 0)) == sizeof(RCF::defined_)) >, \
1506 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 77> *) 0)) == sizeof(RCF::defined_)) >, \
1507 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 78> *) 0)) == sizeof(RCF::defined_)) >, \
1508 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 79> *) 0)) == sizeof(RCF::defined_)) >, \
1509 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 80> *) 0)) == sizeof(RCF::defined_)) >, \
1510 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 81> *) 0)) == sizeof(RCF::defined_)) >, \
1511 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 82> *) 0)) == sizeof(RCF::defined_)) >, \
1512 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 83> *) 0)) == sizeof(RCF::defined_)) >, \
1513 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 84> *) 0)) == sizeof(RCF::defined_)) >, \
1514 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 85> *) 0)) == sizeof(RCF::defined_)) >, \
1515 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 86> *) 0)) == sizeof(RCF::defined_)) >, \
1516 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 87> *) 0)) == sizeof(RCF::defined_)) >, \
1517 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 88> *) 0)) == sizeof(RCF::defined_)) >, \
1518 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 89> *) 0)) == sizeof(RCF::defined_)) >, \
1519 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 90> *) 0)) == sizeof(RCF::defined_)) >, \
1520 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 91> *) 0)) == sizeof(RCF::defined_)) >, \
1521 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 92> *) 0)) == sizeof(RCF::defined_)) >, \
1522 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 93> *) 0)) == sizeof(RCF::defined_)) >, \
1523 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 94> *) 0)) == sizeof(RCF::defined_)) >, \
1524 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 95> *) 0)) == sizeof(RCF::defined_)) >, \
1525 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 96> *) 0)) == sizeof(RCF::defined_)) >, \
1526 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 97> *) 0)) == sizeof(RCF::defined_)) >, \
1527 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 98> *) 0)) == sizeof(RCF::defined_)) >, \
1528 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_< 99> *) 0)) == sizeof(RCF::defined_)) >, \
1529 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<100> *) 0)) == sizeof(RCF::defined_)) >, \
1530 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<101> *) 0)) == sizeof(RCF::defined_)) >, \
1531 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<102> *) 0)) == sizeof(RCF::defined_)) >, \
1532 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<103> *) 0)) == sizeof(RCF::defined_)) >, \
1533 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<104> *) 0)) == sizeof(RCF::defined_)) >, \
1534 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<105> *) 0)) == sizeof(RCF::defined_)) >, \
1535 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<106> *) 0)) == sizeof(RCF::defined_)) >, \
1536 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<107> *) 0)) == sizeof(RCF::defined_)) >, \
1537 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<108> *) 0)) == sizeof(RCF::defined_)) >, \
1538 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<109> *) 0)) == sizeof(RCF::defined_)) >, \
1539 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<110> *) 0)) == sizeof(RCF::defined_)) >, \
1540 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<111> *) 0)) == sizeof(RCF::defined_)) >, \
1541 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<112> *) 0)) == sizeof(RCF::defined_)) >, \
1542 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<113> *) 0)) == sizeof(RCF::defined_)) >, \
1543 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<114> *) 0)) == sizeof(RCF::defined_)) >, \
1544 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<115> *) 0)) == sizeof(RCF::defined_)) >, \
1545 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<116> *) 0)) == sizeof(RCF::defined_)) >, \
1546 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<117> *) 0)) == sizeof(RCF::defined_)) >, \
1547 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<118> *) 0)) == sizeof(RCF::defined_)) >, \
1548 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<119> *) 0)) == sizeof(RCF::defined_)) >, \
1549 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<120> *) 0)) == sizeof(RCF::defined_)) >, \
1550 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<121> *) 0)) == sizeof(RCF::defined_)) >, \
1551 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<122> *) 0)) == sizeof(RCF::defined_)) >, \
1552 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<123> *) 0)) == sizeof(RCF::defined_)) >, \
1553 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<124> *) 0)) == sizeof(RCF::defined_)) >, \
1554 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<125> *) 0)) == sizeof(RCF::defined_)) >, \
1555 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<126> *) 0)) == sizeof(RCF::defined_)) >, \
1556 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<127> *) 0)) == sizeof(RCF::defined_)) >, \
1557 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<128> *) 0)) == sizeof(RCF::defined_)) >, \
1558 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<129> *) 0)) == sizeof(RCF::defined_)) >, \
1559 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<130> *) 0)) == sizeof(RCF::defined_)) >, \
1560 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<131> *) 0)) == sizeof(RCF::defined_)) >, \
1561 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<132> *) 0)) == sizeof(RCF::defined_)) >, \
1562 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<133> *) 0)) == sizeof(RCF::defined_)) >, \
1563 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<134> *) 0)) == sizeof(RCF::defined_)) >, \
1564 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<135> *) 0)) == sizeof(RCF::defined_)) >, \
1565 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<136> *) 0)) == sizeof(RCF::defined_)) >, \
1566 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<137> *) 0)) == sizeof(RCF::defined_)) >, \
1567 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<138> *) 0)) == sizeof(RCF::defined_)) >, \
1568 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<139> *) 0)) == sizeof(RCF::defined_)) >, \
1569 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<140> *) 0)) == sizeof(RCF::defined_)) >, \
1570 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<141> *) 0)) == sizeof(RCF::defined_)) >, \
1571 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<142> *) 0)) == sizeof(RCF::defined_)) >, \
1572 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<143> *) 0)) == sizeof(RCF::defined_)) >, \
1573 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<144> *) 0)) == sizeof(RCF::defined_)) >, \
1574 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<145> *) 0)) == sizeof(RCF::defined_)) >, \
1575 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<146> *) 0)) == sizeof(RCF::defined_)) >, \
1576 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<147> *) 0)) == sizeof(RCF::defined_)) >, \
1577 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<148> *) 0)) == sizeof(RCF::defined_)) >, \
1578 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<149> *) 0)) == sizeof(RCF::defined_)) >, \
1579 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<150> *) 0)) == sizeof(RCF::defined_)) >, \
1580 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<151> *) 0)) == sizeof(RCF::defined_)) >, \
1581 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<152> *) 0)) == sizeof(RCF::defined_)) >, \
1582 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<153> *) 0)) == sizeof(RCF::defined_)) >, \
1583 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<154> *) 0)) == sizeof(RCF::defined_)) >, \
1584 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<155> *) 0)) == sizeof(RCF::defined_)) >, \
1585 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<156> *) 0)) == sizeof(RCF::defined_)) >, \
1586 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<157> *) 0)) == sizeof(RCF::defined_)) >, \
1587 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<158> *) 0)) == sizeof(RCF::defined_)) >, \
1588 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<159> *) 0)) == sizeof(RCF::defined_)) >, \
1589 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<160> *) 0)) == sizeof(RCF::defined_)) >, \
1590 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<161> *) 0)) == sizeof(RCF::defined_)) >, \
1591 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<162> *) 0)) == sizeof(RCF::defined_)) >, \
1592 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<163> *) 0)) == sizeof(RCF::defined_)) >, \
1593 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<164> *) 0)) == sizeof(RCF::defined_)) >, \
1594 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<165> *) 0)) == sizeof(RCF::defined_)) >, \
1595 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<166> *) 0)) == sizeof(RCF::defined_)) >, \
1596 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<167> *) 0)) == sizeof(RCF::defined_)) >, \
1597 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<168> *) 0)) == sizeof(RCF::defined_)) >, \
1598 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<169> *) 0)) == sizeof(RCF::defined_)) >, \
1599 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<170> *) 0)) == sizeof(RCF::defined_)) >, \
1600 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<171> *) 0)) == sizeof(RCF::defined_)) >, \
1601 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<172> *) 0)) == sizeof(RCF::defined_)) >, \
1602 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<173> *) 0)) == sizeof(RCF::defined_)) >, \
1603 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<174> *) 0)) == sizeof(RCF::defined_)) >, \
1604 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<175> *) 0)) == sizeof(RCF::defined_)) >, \
1605 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<176> *) 0)) == sizeof(RCF::defined_)) >, \
1606 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<177> *) 0)) == sizeof(RCF::defined_)) >, \
1607 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<178> *) 0)) == sizeof(RCF::defined_)) >, \
1608 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<179> *) 0)) == sizeof(RCF::defined_)) >, \
1609 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<180> *) 0)) == sizeof(RCF::defined_)) >, \
1610 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<181> *) 0)) == sizeof(RCF::defined_)) >, \
1611 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<182> *) 0)) == sizeof(RCF::defined_)) >, \
1612 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<183> *) 0)) == sizeof(RCF::defined_)) >, \
1613 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<184> *) 0)) == sizeof(RCF::defined_)) >, \
1614 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<185> *) 0)) == sizeof(RCF::defined_)) >, \
1615 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<186> *) 0)) == sizeof(RCF::defined_)) >, \
1616 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<187> *) 0)) == sizeof(RCF::defined_)) >, \
1617 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<188> *) 0)) == sizeof(RCF::defined_)) >, \
1618 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<189> *) 0)) == sizeof(RCF::defined_)) >, \
1619 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<190> *) 0)) == sizeof(RCF::defined_)) >, \
1620 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<191> *) 0)) == sizeof(RCF::defined_)) >, \
1621 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<192> *) 0)) == sizeof(RCF::defined_)) >, \
1622 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<193> *) 0)) == sizeof(RCF::defined_)) >, \
1623 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<194> *) 0)) == sizeof(RCF::defined_)) >, \
1624 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<195> *) 0)) == sizeof(RCF::defined_)) >, \
1625 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<196> *) 0)) == sizeof(RCF::defined_)) >, \
1626 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<197> *) 0)) == sizeof(RCF::defined_)) >, \
1627 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<198> *) 0)) == sizeof(RCF::defined_)) >, \
1628 boost::mpl::if_< boost::mpl::bool_< (sizeof(helper_func((T1 *) 0, (T2 *) 0, (boost::mpl::int_<199> *) 0)) == sizeof(RCF::defined_)) >, \
1629 boost::mpl::int_<199>, \
1630 boost::mpl::int_<198> >::type, \
1631 boost::mpl::int_<197> >::type, \
1632 boost::mpl::int_<196> >::type, \
1633 boost::mpl::int_<195> >::type, \
1634 boost::mpl::int_<194> >::type, \
1635 boost::mpl::int_<193> >::type, \
1636 boost::mpl::int_<192> >::type, \
1637 boost::mpl::int_<191> >::type, \
1638 boost::mpl::int_<190> >::type, \
1639 boost::mpl::int_<189> >::type, \
1640 boost::mpl::int_<188> >::type, \
1641 boost::mpl::int_<187> >::type, \
1642 boost::mpl::int_<186> >::type, \
1643 boost::mpl::int_<185> >::type, \
1644 boost::mpl::int_<184> >::type, \
1645 boost::mpl::int_<183> >::type, \
1646 boost::mpl::int_<182> >::type, \
1647 boost::mpl::int_<181> >::type, \
1648 boost::mpl::int_<180> >::type, \
1649 boost::mpl::int_<179> >::type, \
1650 boost::mpl::int_<178> >::type, \
1651 boost::mpl::int_<177> >::type, \
1652 boost::mpl::int_<176> >::type, \
1653 boost::mpl::int_<175> >::type, \
1654 boost::mpl::int_<174> >::type, \
1655 boost::mpl::int_<173> >::type, \
1656 boost::mpl::int_<172> >::type, \
1657 boost::mpl::int_<171> >::type, \
1658 boost::mpl::int_<170> >::type, \
1659 boost::mpl::int_<169> >::type, \
1660 boost::mpl::int_<168> >::type, \
1661 boost::mpl::int_<167> >::type, \
1662 boost::mpl::int_<166> >::type, \
1663 boost::mpl::int_<165> >::type, \
1664 boost::mpl::int_<164> >::type, \
1665 boost::mpl::int_<163> >::type, \
1666 boost::mpl::int_<162> >::type, \
1667 boost::mpl::int_<161> >::type, \
1668 boost::mpl::int_<160> >::type, \
1669 boost::mpl::int_<159> >::type, \
1670 boost::mpl::int_<158> >::type, \
1671 boost::mpl::int_<157> >::type, \
1672 boost::mpl::int_<156> >::type, \
1673 boost::mpl::int_<155> >::type, \
1674 boost::mpl::int_<154> >::type, \
1675 boost::mpl::int_<153> >::type, \
1676 boost::mpl::int_<152> >::type, \
1677 boost::mpl::int_<151> >::type, \
1678 boost::mpl::int_<150> >::type, \
1679 boost::mpl::int_<149> >::type, \
1680 boost::mpl::int_<148> >::type, \
1681 boost::mpl::int_<147> >::type, \
1682 boost::mpl::int_<146> >::type, \
1683 boost::mpl::int_<145> >::type, \
1684 boost::mpl::int_<144> >::type, \
1685 boost::mpl::int_<143> >::type, \
1686 boost::mpl::int_<142> >::type, \
1687 boost::mpl::int_<141> >::type, \
1688 boost::mpl::int_<140> >::type, \
1689 boost::mpl::int_<139> >::type, \
1690 boost::mpl::int_<138> >::type, \
1691 boost::mpl::int_<137> >::type, \
1692 boost::mpl::int_<136> >::type, \
1693 boost::mpl::int_<135> >::type, \
1694 boost::mpl::int_<134> >::type, \
1695 boost::mpl::int_<133> >::type, \
1696 boost::mpl::int_<132> >::type, \
1697 boost::mpl::int_<131> >::type, \
1698 boost::mpl::int_<130> >::type, \
1699 boost::mpl::int_<129> >::type, \
1700 boost::mpl::int_<128> >::type, \
1701 boost::mpl::int_<127> >::type, \
1702 boost::mpl::int_<126> >::type, \
1703 boost::mpl::int_<125> >::type, \
1704 boost::mpl::int_<124> >::type, \
1705 boost::mpl::int_<123> >::type, \
1706 boost::mpl::int_<122> >::type, \
1707 boost::mpl::int_<121> >::type, \
1708 boost::mpl::int_<120> >::type, \
1709 boost::mpl::int_<119> >::type, \
1710 boost::mpl::int_<118> >::type, \
1711 boost::mpl::int_<117> >::type, \
1712 boost::mpl::int_<116> >::type, \
1713 boost::mpl::int_<115> >::type, \
1714 boost::mpl::int_<114> >::type, \
1715 boost::mpl::int_<113> >::type, \
1716 boost::mpl::int_<112> >::type, \
1717 boost::mpl::int_<111> >::type, \
1718 boost::mpl::int_<110> >::type, \
1719 boost::mpl::int_<109> >::type, \
1720 boost::mpl::int_<108> >::type, \
1721 boost::mpl::int_<107> >::type, \
1722 boost::mpl::int_<106> >::type, \
1723 boost::mpl::int_<105> >::type, \
1724 boost::mpl::int_<104> >::type, \
1725 boost::mpl::int_<103> >::type, \
1726 boost::mpl::int_<102> >::type, \
1727 boost::mpl::int_<101> >::type, \
1728 boost::mpl::int_<100> >::type, \
1729 boost::mpl::int_< 99> >::type, \
1730 boost::mpl::int_< 98> >::type, \
1731 boost::mpl::int_< 97> >::type, \
1732 boost::mpl::int_< 96> >::type, \
1733 boost::mpl::int_< 95> >::type, \
1734 boost::mpl::int_< 94> >::type, \
1735 boost::mpl::int_< 93> >::type, \
1736 boost::mpl::int_< 92> >::type, \
1737 boost::mpl::int_< 91> >::type, \
1738 boost::mpl::int_< 90> >::type, \
1739 boost::mpl::int_< 89> >::type, \
1740 boost::mpl::int_< 88> >::type, \
1741 boost::mpl::int_< 87> >::type, \
1742 boost::mpl::int_< 86> >::type, \
1743 boost::mpl::int_< 85> >::type, \
1744 boost::mpl::int_< 84> >::type, \
1745 boost::mpl::int_< 83> >::type, \
1746 boost::mpl::int_< 82> >::type, \
1747 boost::mpl::int_< 81> >::type, \
1748 boost::mpl::int_< 80> >::type, \
1749 boost::mpl::int_< 79> >::type, \
1750 boost::mpl::int_< 78> >::type, \
1751 boost::mpl::int_< 77> >::type, \
1752 boost::mpl::int_< 76> >::type, \
1753 boost::mpl::int_< 75> >::type, \
1754 boost::mpl::int_< 74> >::type, \
1755 boost::mpl::int_< 73> >::type, \
1756 boost::mpl::int_< 72> >::type, \
1757 boost::mpl::int_< 71> >::type, \
1758 boost::mpl::int_< 70> >::type, \
1759 boost::mpl::int_< 69> >::type, \
1760 boost::mpl::int_< 68> >::type, \
1761 boost::mpl::int_< 67> >::type, \
1762 boost::mpl::int_< 66> >::type, \
1763 boost::mpl::int_< 65> >::type, \
1764 boost::mpl::int_< 64> >::type, \
1765 boost::mpl::int_< 63> >::type, \
1766 boost::mpl::int_< 62> >::type, \
1767 boost::mpl::int_< 61> >::type, \
1768 boost::mpl::int_< 60> >::type, \
1769 boost::mpl::int_< 59> >::type, \
1770 boost::mpl::int_< 58> >::type, \
1771 boost::mpl::int_< 57> >::type, \
1772 boost::mpl::int_< 56> >::type, \
1773 boost::mpl::int_< 55> >::type, \
1774 boost::mpl::int_< 54> >::type, \
1775 boost::mpl::int_< 53> >::type, \
1776 boost::mpl::int_< 52> >::type, \
1777 boost::mpl::int_< 51> >::type, \
1778 boost::mpl::int_< 50> >::type, \
1779 boost::mpl::int_< 49> >::type, \
1780 boost::mpl::int_< 48> >::type, \
1781 boost::mpl::int_< 47> >::type, \
1782 boost::mpl::int_< 46> >::type, \
1783 boost::mpl::int_< 45> >::type, \
1784 boost::mpl::int_< 44> >::type, \
1785 boost::mpl::int_< 43> >::type, \
1786 boost::mpl::int_< 42> >::type, \
1787 boost::mpl::int_< 41> >::type, \
1788 boost::mpl::int_< 40> >::type, \
1789 boost::mpl::int_< 39> >::type, \
1790 boost::mpl::int_< 38> >::type, \
1791 boost::mpl::int_< 37> >::type, \
1792 boost::mpl::int_< 36> >::type, \
1793 boost::mpl::int_< 35> >::type, \
1794 boost::mpl::int_< 34> >::type, \
1795 boost::mpl::int_< 33> >::type, \
1796 boost::mpl::int_< 32> >::type, \
1797 boost::mpl::int_< 31> >::type, \
1798 boost::mpl::int_< 30> >::type, \
1799 boost::mpl::int_< 29> >::type, \
1800 boost::mpl::int_< 28> >::type, \
1801 boost::mpl::int_< 27> >::type, \
1802 boost::mpl::int_< 26> >::type, \
1803 boost::mpl::int_< 25> >::type, \
1804 boost::mpl::int_< 24> >::type, \
1805 boost::mpl::int_< 23> >::type, \
1806 boost::mpl::int_< 22> >::type, \
1807 boost::mpl::int_< 21> >::type, \
1808 boost::mpl::int_< 20> >::type, \
1809 boost::mpl::int_< 19> >::type, \
1810 boost::mpl::int_< 18> >::type, \
1811 boost::mpl::int_< 17> >::type, \
1812 boost::mpl::int_< 16> >::type, \
1813 boost::mpl::int_< 15> >::type, \
1814 boost::mpl::int_< 14> >::type, \
1815 boost::mpl::int_< 13> >::type, \
1816 boost::mpl::int_< 12> >::type, \
1817 boost::mpl::int_< 11> >::type, \
1818 boost::mpl::int_< 10> >::type, \
1819 boost::mpl::int_< 9> >::type, \
1820 boost::mpl::int_< 8> >::type, \
1821 boost::mpl::int_< 7> >::type, \
1822 boost::mpl::int_< 6> >::type, \
1823 boost::mpl::int_< 5> >::type, \
1824 boost::mpl::int_< 4> >::type, \
1825 boost::mpl::int_< 3> >::type, \
1826 boost::mpl::int_< 2> >::type, \
1827 boost::mpl::int_< 1> >::type, \
1828 boost::mpl::int_< 0> >::type, \
1829 boost::mpl::int_< -1> >::type current_static_id;
1834 #error RCF_MAX_METHOD_COUNT > 200 is currently not implemented.
1836 #endif // RCF_MAX_METHOD_COUNT
1838 #ifdef RCF_SEPARATE_IDL_COMPILATION
1839 #include <RCF/Idl_DeclareOnly.hpp>
1841 #include <RCF/Idl_Inline.hpp>
1844 #endif // ! INCLUDE_RCF_IDL_HPP