RCFProto
 All Classes Functions Typedefs
Idl.hpp
1 
2 //******************************************************************************
3 // RCF - Remote Call Framework
4 //
5 // Copyright (c) 2005 - 2013, Delta V Software. All rights reserved.
6 // http://www.deltavsoft.com
7 //
8 // RCF is distributed under dual licenses - closed source or GPL.
9 // Consult your particular license for conditions of use.
10 //
11 // If you have not purchased a commercial license, you are using RCF
12 // under GPL terms.
13 //
14 // Version: 2.0
15 // Contact: support <at> deltavsoft.com
16 //
17 //******************************************************************************
18 
19 #ifndef INCLUDE_RCF_IDL_HPP
20 #define INCLUDE_RCF_IDL_HPP
21 
22 #include <boost/mpl/bool.hpp>
23 #include <boost/mpl/if.hpp>
24 #include <boost/mpl/int.hpp>
25 
26 #include <boost/shared_ptr.hpp>
27 #include <boost/static_assert.hpp>
28 #include <boost/type_traits/is_same.hpp>
29 
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>
42 
43 #ifndef RCF_EXPORT_INTERFACE
44 #define RCF_EXPORT_INTERFACE
45 #endif
46 
47 #define RCF_BEGIN_INLINE(InterfaceT, Name) RCF_BEGIN_I0_INLINE(InterfaceT, Name)
48 
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)
53 
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)
58 
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)
63 
64 #define RCF_BEGIN_IMPL_PRELUDE(InterfaceT, Name) \
65  \
66  template<typename T> \
67  class RcfClient; \
68  \
69  class RCF_EXPORT_INTERFACE InterfaceT \
70  { \
71  public: \
72  typedef RcfClient<InterfaceT> RcfClientT; \
73  static std::string getInterfaceName() \
74  { \
75  std::string interfaceName(Name); \
76  if (interfaceName.empty()) \
77  { \
78  interfaceName = #InterfaceT; \
79  } \
80  return interfaceName; \
81  } \
82  };
83 
84 #define RCF_BEGIN_IMPL_INHERITED_0(InterfaceT, Name) \
85  template<> \
86  class RCF_EXPORT_INTERFACE RcfClient< InterfaceT > : \
87  public virtual ::RCF::I_RcfClient \
88  { \
89  private: \
90  template<typename DerefPtrT> \
91  void registerInvokeFunctors(::RCF::InvokeFunctorMap &invokeFunctorMap, DerefPtrT derefPtr) \
92  { \
93  ::RCF::registerInvokeFunctors(*this, invokeFunctorMap, derefPtr); \
94  } \
95  void setClientStubPtr(::RCF::ClientStubPtr clientStubPtr) \
96  { \
97  mClientStubPtr = clientStubPtr; \
98  }
99 
100 #define RCF_BEGIN_IMPL_INHERITED_1(InterfaceT, Name, InheritT1) \
101  template<> \
102  class RCF_EXPORT_INTERFACE RcfClient< InterfaceT > : \
103  public virtual ::RCF::I_RcfClient, \
104  public virtual ::RCF::GetInterface<InheritT1>::type \
105  { \
106  private: \
107  template<typename DerefPtrT> \
108  void registerInvokeFunctors(::RCF::InvokeFunctorMap &invokeFunctorMap, DerefPtrT derefPtr) \
109  { \
110  ::RCF::registerInvokeFunctors(*this, invokeFunctorMap, derefPtr); \
111  ::RCF::StubAccess().registerParentInvokeFunctors( \
112  (InheritT1 *) NULL, \
113  *this, \
114  invokeFunctorMap, \
115  derefPtr); \
116  } \
117  void setClientStubPtr(::RCF::ClientStubPtr clientStubPtr) \
118  { \
119  mClientStubPtr = clientStubPtr; \
120  ::RCF::StubAccess().setClientStubPtr( (InheritT1*) 0, *this); \
121  }
122 
123 #define RCF_BEGIN_IMPL_INHERITED_2(InterfaceT, Name, InheritT1, InheritT2) \
124  template<> \
125  class RcfClient< InterfaceT > : \
126  public virtual ::RCF::I_RcfClient, \
127  public virtual ::RCF::GetInterface<InheritT1>::type, \
128  public virtual ::RCF::GetInterface<InheritT2>::type \
129  { \
130  private: \
131  template<typename DerefPtrT> \
132  void registerInvokeFunctors(::RCF::InvokeFunctorMap &invokeFunctorMap, DerefPtrT derefPtr) \
133  { \
134  ::RCF::registerInvokeFunctors(*this, invokeFunctorMap, derefPtr); \
135  \
136  ::RCF::StubAccess().registerParentInvokeFunctors( \
137  (InheritT1 *) NULL, \
138  *this, \
139  invokeFunctorMap, \
140  derefPtr); \
141  \
142  ::RCF::StubAccess().registerParentInvokeFunctors( \
143  (InheritT2 *) NULL, \
144  *this, \
145  invokeFunctorMap, \
146  derefPtr); \
147  } \
148  void setClientStubPtr(::RCF::ClientStubPtr clientStubPtr) \
149  { \
150  mClientStubPtr = clientStubPtr; \
151  ::RCF::StubAccess().setClientStubPtr( (InheritT1*) 0, *this); \
152  ::RCF::StubAccess().setClientStubPtr( (InheritT2*) 0, *this); \
153  }
154 
155 #define RCF_BEGIN_IMPL_POSTLUDE(InterfaceT, Name) \
156  public: \
157  \
158  RcfClient() \
159  { \
160  mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
161  } \
162  \
163  template<typename DerefPtrT> \
164  RcfClient( \
165  ::RCF::ServerBindingPtr serverStubPtr, \
166  DerefPtrT derefPtr, \
167  boost::mpl::true_ *) \
168  { \
169  mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL);\
170  serverStubPtr->registerInvokeFunctors(*this, derefPtr); \
171  mServerStubPtr = serverStubPtr; \
172  } \
173  \
174  RcfClient( \
175  const ::RCF::Endpoint &endpoint) \
176  { \
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); \
182  } \
183  \
184  RcfClient( \
185  const ::RCF::Endpoint & endpoint, \
186  const std::string & targetName) \
187  { \
188  mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
189  ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(mInterfaceName, targetName) ); \
190  clientStubPtr->setEndpoint(endpoint); \
191  setClientStubPtr(clientStubPtr); \
192  } \
193  \
194  RcfClient( \
195  ::RCF::ClientTransportAutoPtr clientTransportAutoPtr) \
196  { \
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); \
202  } \
203  \
204  RcfClient( \
205  ::RCF::ClientTransportAutoPtr clientTransportAutoPtr, \
206  const std::string & targetName) \
207  { \
208  mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
209  ::RCF::ClientStubPtr clientStubPtr( new ::RCF::ClientStub(mInterfaceName, targetName) ); \
210  clientStubPtr->setTransport(clientTransportAutoPtr); \
211  setClientStubPtr(clientStubPtr); \
212  } \
213  \
214  RcfClient( \
215  const ::RCF::ClientStub & clientStub) \
216  { \
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); \
224  } \
225  \
226  RcfClient( \
227  const ::RCF::ClientStub & clientStub, \
228  const std::string & targetName) \
229  { \
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); \
236  } \
237  \
238  RcfClient( \
239  const ::RCF::I_RcfClient & rhs) \
240  { \
241  mInterfaceName = ::RCF::getInterfaceName( (InterfaceT *) NULL); \
242  if (rhs.getClientStubPtr()) \
243  { \
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); \
250  } \
251  } \
252  \
253  ~RcfClient() \
254  { \
255  } \
256  \
257  RcfClient &operator=(const RcfClient &rhs) \
258  { \
259  if (&rhs != this) \
260  { \
261  if (rhs.mClientStubPtr) \
262  { \
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); \
269  } \
270  else \
271  { \
272  RCF_ASSERT(!rhs.mServerStubPtr); \
273  mClientStubPtr = rhs.mClientStubPtr; \
274  } \
275  } \
276  return *this; \
277  } \
278  \
279  RcfClient &operator=(const ::RCF::I_RcfClient &rhs) \
280  { \
281  if (rhs.getClientStubPtr()) \
282  { \
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); \
289  } \
290  else \
291  { \
292  RCF_ASSERT(!rhs.getServerStubPtr()); \
293  mClientStubPtr.reset(); \
294  } \
295  return *this; \
296  } \
297  \
298  void swap(RcfClient & rhs) \
299  { \
300  ::RCF::ClientStubPtr clientStubPtr = rhs.mClientStubPtr; \
301  ::RCF::ServerBindingPtr serverStubPtr = rhs.mServerStubPtr; \
302  \
303  rhs.mClientStubPtr = mClientStubPtr; \
304  rhs.mServerStubPtr = mServerStubPtr; \
305  \
306  mClientStubPtr = clientStubPtr; \
307  mServerStubPtr = serverStubPtr; \
308  } \
309  \
310  public: \
311  ::RCF::ClientStub &getClientStub() \
312  { \
313  return *mClientStubPtr; \
314  } \
315  \
316  const ::RCF::ClientStub &getClientStub() const \
317  { \
318  return *mClientStubPtr; \
319  } \
320  \
321  ::RCF::ClientStubPtr getClientStubPtr() const \
322  { \
323  return mClientStubPtr; \
324  } \
325  \
326  ::RCF::ServerBindingPtr getServerStubPtr() const \
327  { \
328  return mServerStubPtr; \
329  } \
330  \
331  private: \
332  ::RCF::ServerBinding &getServerStub() \
333  { \
334  return *mServerStubPtr; \
335  } \
336  \
337  public: \
338  template<typename Archive> \
339  void serialize(Archive &ar) \
340  { \
341  ::RCF::StubAccess().serialize(ar, *this); \
342  } \
343  \
344  template<typename Archive> \
345  void serialize(Archive &ar, const unsigned int) \
346  { \
347  ::RCF::StubAccess().serialize(ar, *this, 0); \
348  } \
349  \
350  private: \
351  \
352  template<typename N, typename T> \
353  void invoke( \
354  const N &, \
355  ::RCF::RcfSession &, \
356  const T &) \
357  { \
358  ::RCF::Exception e(RCF::_RcfError_FnId(N::value)); \
359  RCF_THROW(e); \
360  } \
361  \
362  const char * getFunctionName(...) \
363  { \
364  RCF_ASSERT(0 && "getFunctionName() - invalid function id"); \
365  return ""; \
366  } \
367  \
368  const char * getArity(...) \
369  { \
370  RCF_ASSERT(0 && "getArity() - invalid function id"); \
371  return ""; \
372  } \
373  \
374  ::RCF::ClientStubPtr mClientStubPtr; \
375  ::RCF::ServerBindingPtr mServerStubPtr; \
376  \
377  std::string mInterfaceName; \
378  \
379  typedef ::RCF::Void V; \
380  typedef RcfClient< InterfaceT > ThisT; \
381  typedef ::RCF::Dummy<ThisT> DummyThisT; \
382  \
383  friend class ::RCF::StubAccess; \
384  friend ::RCF::default_ RCF_make_next_dispatch_id_func(DummyThisT *, ThisT *,...); \
385  public: \
386  typedef InterfaceT Interface;
387 
388 
389 
390 #define RCF_END_INLINE( InterfaceT ) \
391  };
392 
393 #define RCF_METHOD_PLACEHOLDER() \
394  RCF_METHOD_PLACEHOLDER_(RCF_MAKE_UNIQUE_ID(PlaceHolder, V0))
395 
396 #define RCF_METHOD_PLACEHOLDER_(id) \
397  public: \
398  RCF_MAKE_NEXT_DISPATCH_ID(id) \
399  private:
400 
401 
402 
403 // For declarations only.
404 
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
410 
411 // For definitions only.
412 
413 #define RCF_BEGIN_DEF(Interface, Name) \
414  RCF_BEGIN_DEF_(Interface, Name, RCF_PP_CAT(rcf_interface_id_, Interface, _, __LINE__))
415 
416 #define RCF_BEGIN_I0_DEF(Interface, Name) \
417  RCF_BEGIN_DEF_(Interface, Name, RCF_PP_CAT(rcf_interface_id_, Interface, _, __LINE__))
418 
419 #define RCF_BEGIN_I1_DEF(Interface, Name, InheritT1) \
420  RCF_BEGIN_DEF_(Interface, Name, RCF_PP_CAT(rcf_interface_id_, Interface, _, __LINE__))
421 
422 #define RCF_BEGIN_I2_DEF(Interface, Name, InheritT1, InheritT2) \
423  RCF_BEGIN_DEF_(Interface, Name, RCF_PP_CAT(rcf_interface_id_, Interface, _, __LINE__))
424 
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; \
430  template<> \
431  class GeneratorParms<interfaceId> \
432  { \
433  public: \
434  typedef Interface InterfaceT; \
435  typedef RcfClient<InterfaceT> RcfClientT; \
436  };
437 
438 #define RCF_END_DEF( Interface )
439 
440 
441 
442 #include "RcfMethodGen.hpp"
443 
444 // RCF_MAKE_UNIQUE_ID
445 
446 BOOST_STATIC_ASSERT( sizeof(RCF::defined_) != sizeof(RCF::default_));
447 
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__)
450 
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)
453 
454 #if RCF_MAX_METHOD_COUNT <= 35
455 
456 #define RCF_ADVANCE_STATIC_ID(next_static_id, helper_func, T1, T2, friend_or_not) \
457  typedef \
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 *);
530 
531 
532 #define RCF_CURRENT_STATIC_ID(current_static_id, helper_func, T1, T2) \
533  typedef \
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;
605 
606 
607 #elif RCF_MAX_METHOD_COUNT <= 100
608 
609 #define RCF_ADVANCE_STATIC_ID(next_static_id, helper_func, T1, T2, friend_or_not) \
610  typedef \
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 *);
813 
814 
815 #define RCF_CURRENT_STATIC_ID(current_static_id, helper_func, T1, T2) \
816  typedef \
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;
1018 
1019 #elif RCF_MAX_METHOD_COUNT <= 200
1020 
1021 #define RCF_ADVANCE_STATIC_ID(next_static_id, helper_func, T1, T2, friend_or_not) \
1022  typedef \
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 *);
1425 
1426 
1427 #define RCF_CURRENT_STATIC_ID(current_static_id, helper_func, T1, T2) \
1428  typedef \
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;
1830 
1831 
1832 #else
1833 
1834 #error RCF_MAX_METHOD_COUNT > 200 is currently not implemented.
1835 
1836 #endif // RCF_MAX_METHOD_COUNT
1837 
1838 #ifdef RCF_SEPARATE_IDL_COMPILATION
1839 #include <RCF/Idl_DeclareOnly.hpp>
1840 #else
1841 #include <RCF/Idl_Inline.hpp>
1842 #endif
1843 
1844 #endif // ! INCLUDE_RCF_IDL_HPP