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