33 #ifndef __H__UG_BRIDGE__FUNCTION_TRAITS__
34 #define __H__UG_BRIDGE__FUNCTION_TRAITS__
37 #include <type_traits>
58 template <
typename TFunc>
65 template <
typename TRet>
68 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
78 template <
typename TRet,
typename P1>
81 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
91 template <
typename TRet,
typename T1,
typename T2>
94 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
99 return fp(args.
hd, args.
tl.hd);
103 template <
typename TRet,
typename T1,
typename T2,
typename T3>
106 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
111 return fp(args.
hd, args.
tl.hd, args.
tl.tl.hd);
115 template <
typename TRet,
typename T1,
typename T2,
typename T3,
119 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
124 return fp(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd);
128 template <
typename TRet,
typename T1,
typename T2,
typename T3,
129 typename T4,
typename T5>
132 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
137 return fp(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd,
138 args.
tl.tl.tl.tl.hd);
142 template <
typename TRet,
typename T1,
typename T2,
typename T3,
143 typename T4,
typename T5,
typename T6>
146 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
151 return fp(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd,
152 args.
tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.hd);
156 template <
typename TRet,
typename T1,
typename T2,
typename T3,
157 typename T4,
typename T5,
typename T6,
typename T7>
160 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
165 return fp(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd,
166 args.
tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd);
170 template <
typename TRet,
typename T1,
typename T2,
typename T3,
171 typename T4,
typename T5,
typename T6,
typename T7,
typename T8>
174 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
179 return fp(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd,
180 args.
tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd,
181 args.
tl.tl.tl.tl.tl.tl.tl.hd);
185 template <
typename TRet,
typename T1,
typename T2,
typename T3,
186 typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9>
187 struct func_traits <TRet (*) (T1, T2, T3, T4, T5, T6, T7, T8, T9)>
189 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
194 return fp(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd,
195 args.
tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd,
196 args.
tl.tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.tl.hd);
200 template <
typename TRet,
typename T1,
typename T2,
typename T3,
201 typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9,
203 struct func_traits <TRet (*) (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
205 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
208 static TRet
apply(TRet (*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10),
TypeValueList<params_type>& args)
210 return fp(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd,
211 args.
tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd,
212 args.
tl.tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.tl.hd,
213 args.
tl.tl.tl.tl.tl.tl.tl.tl.tl.hd);
217 template <
typename TRet,
typename T1,
typename T2,
typename T3,
218 typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9,
219 typename T10,
typename T11>
220 struct func_traits <TRet (*) (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>
222 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
224 typedef TypeList<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> params_type;
225 static TRet
apply(TRet (*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11),
TypeValueList<params_type>& args)
227 return fp(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd,
228 args.
tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd,
229 args.
tl.tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.tl.hd,
230 args.
tl.tl.tl.tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.tl.tl.tl.hd);
234 template <
typename TRet,
typename T1,
typename T2,
typename T3,
235 typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9,
236 typename T10,
typename T11,
typename T12>
237 struct func_traits <TRet (*) (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>
239 static const bool custom_return = std::is_same<TRet, CustomReturn>::value;
241 typedef TypeList<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> params_type;
242 static TRet
apply(TRet (*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12),
TypeValueList<params_type>& args)
244 return fp(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd,
245 args.
tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd,
246 args.
tl.tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.tl.hd,
247 args.
tl.tl.tl.tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.tl.tl.tl.hd,
248 args.
tl.tl.tl.tl.tl.tl.tl.tl.tl.tl.tl.hd);
256 #define FUNC_TRAITS_GENERAL_NON_CONST_MEMBER \
257 static const bool custom_return = std::is_same<TRet, CustomReturn>::value; \
258 static const bool const_method = false;\
259 typedef TClass class_type;\
260 typedef TRet return_type
263 template <
typename TClass,
typename TRet>
275 template <
typename TClass,
typename TRet,
typename P1>
282 return (obj->*fp)(args.
hd);
287 template <
typename TClass,
typename TRet,
typename T1,
typename T2>
294 return (obj->*fp)(args.
hd, args.
tl.hd);
298 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3>
305 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd);
309 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
317 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd);
321 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
322 typename T4,
typename T5>
329 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd);
333 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
334 typename T4,
typename T5,
typename T6>
341 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
342 args.
tl.tl.tl.tl.tl.hd);
346 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
347 typename T4,
typename T5,
typename T6,
typename T7>
348 struct func_traits <TRet (TClass::*) (T1, T2, T3, T4, T5, T6, T7)>
354 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
355 args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd);
359 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
360 typename T4,
typename T5,
typename T6,
typename T7,
typename T8>
361 struct func_traits <TRet (TClass::*) (T1, T2, T3, T4, T5, T6, T7, T8)>
367 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
368 args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.hd);
372 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
373 typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9>
374 struct func_traits <TRet (TClass::*) (T1, T2, T3, T4, T5, T6, T7, T8, T9)>
378 static TRet
apply(TRet (TClass::*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9), TClass* obj,
TypeValueList<params_type>& args)
380 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
381 args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.hd,
382 args.
tl.tl.tl.tl.tl.tl.tl.tl.hd);
390 #define FUNC_TRAITS_GENERAL_CONST_MEMBER \
391 static const bool custom_return = std::is_same<TRet, CustomReturn>::value; \
392 static const bool const_method = true;\
393 typedef TClass class_type;\
394 typedef TRet return_type
397 template <
typename TClass,
typename TRet>
409 template <
typename TClass,
typename TRet,
typename P1>
416 return (obj->*fp)(args.
hd);
421 template <
typename TClass,
typename TRet,
typename T1,
typename T2>
428 return (obj->*fp)(args.
hd, args.
tl.hd);
432 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3>
439 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd);
443 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
451 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd);
455 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
456 typename T4,
typename T5>
463 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd);
467 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
468 typename T4,
typename T5,
typename T6>
469 struct func_traits <TRet (TClass::*) (T1, T2, T3, T4, T5, T6) const>
475 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
476 args.
tl.tl.tl.tl.tl.hd);
480 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
481 typename T4,
typename T5,
typename T6,
typename T7>
482 struct func_traits <TRet (TClass::*) (T1, T2, T3, T4, T5, T6, T7) const>
488 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
489 args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd);
493 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
494 typename T4,
typename T5,
typename T6,
typename T7,
typename T8>
495 struct func_traits <TRet (TClass::*) (T1, T2, T3, T4, T5, T6, T7, T8) const>
501 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
502 args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.hd);
506 template <
typename TClass,
typename TRet,
typename T1,
typename T2,
typename T3,
507 typename T4,
typename T5,
typename T6,
typename T7,
typename T8,
typename T9>
508 struct func_traits <TRet (TClass::*) (T1, T2, T3, T4, T5, T6, T7, T8, T9) const>
512 static TRet
apply(TRet (TClass::*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9)
const,
const TClass* obj,
TypeValueList<params_type>& args)
514 return (obj->*fp)(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
515 args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.hd,
516 args.
tl.tl.tl.tl.tl.tl.tl.tl.hd);
524 template <
typename T,
typename TTypelist>
527 template <
typename T>
538 template <
typename T,
typename T1>
544 return new T(args.
hd);
548 template <
typename T,
typename T1,
typename T2>
554 return new T(args.
hd, args.
tl.hd);
558 template <
typename T,
typename T1,
typename T2,
typename T3>
564 return new T(args.
hd, args.
tl.hd, args.
tl.tl.hd);
568 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4>
574 return new T(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd);
578 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
584 return new T(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd);
588 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6>
594 return new T(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
595 args.
tl.tl.tl.tl.tl.hd);
599 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7>
605 return new T(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
606 args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd);
610 template <
typename T,
typename T1,
typename T2,
typename T3,
typename T4,
typename T5,
typename T6,
typename T7,
typename T8>
616 return new T(args.
hd, args.
tl.hd, args.
tl.tl.hd, args.
tl.tl.tl.hd, args.
tl.tl.tl.tl.hd,
617 args.
tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.hd, args.
tl.tl.tl.tl.tl.tl.tl.hd);
Definition: function_traits.h:56
const int UG_REGISTRY_MAX_NUM_ARGS
Definition: function_traits.h:46
Definition: metaprogramming_util.h:96
Definition: metaprogramming_util.h:117
TypeValueList< tail > tl
Definition: metaprogramming_util.h:122
head hd
Definition: metaprogramming_util.h:121
TypeList< T1, T2, T3, T4, T5, T6, T7, T8 > params_type
Definition: function_traits.h:613
static T * apply(TypeValueList< params_type > &args)
Definition: function_traits.h:614
TypeList< T1, T2, T3, T4, T5, T6, T7 > params_type
Definition: function_traits.h:602
static T * apply(TypeValueList< params_type > &args)
Definition: function_traits.h:603
TypeList< T1, T2, T3, T4, T5, T6 > params_type
Definition: function_traits.h:591
static T * apply(TypeValueList< params_type > &args)
Definition: function_traits.h:592
TypeList< T1, T2, T3, T4, T5 > params_type
Definition: function_traits.h:581
static T * apply(TypeValueList< params_type > &args)
Definition: function_traits.h:582
static T * apply(TypeValueList< params_type > &args)
Definition: function_traits.h:572
TypeList< T1, T2, T3, T4 > params_type
Definition: function_traits.h:571
static T * apply(TypeValueList< params_type > &args)
Definition: function_traits.h:562
TypeList< T1, T2, T3 > params_type
Definition: function_traits.h:561
TypeList< T1, T2 > params_type
Definition: function_traits.h:551
static T * apply(TypeValueList< params_type > &args)
Definition: function_traits.h:552
static T * apply(TypeValueList< params_type > &args)
Definition: function_traits.h:542
TypeList< T1 > params_type
Definition: function_traits.h:541
static T * apply(TypeValueList< params_type > &args)
Definition: function_traits.h:531
TypeList params_type
Definition: function_traits.h:530
Definition: function_traits.h:525
TRet return_type
Definition: function_traits.h:69
TypeList params_type
Definition: function_traits.h:70
static TRet apply(TRet(*fp)(), TypeValueList< params_type > &args)
Definition: function_traits.h:71
TRet return_type
Definition: function_traits.h:82
TypeList< P1 > params_type
Definition: function_traits.h:83
static TRet apply(TRet(*fp)(P1), TypeValueList< params_type > &args)
Definition: function_traits.h:84
static TRet apply(TRet(*fp)(T1, T2, T3, T4, T5, T6, T7, T8), TypeValueList< params_type > &args)
Definition: function_traits.h:177
TRet return_type
Definition: function_traits.h:175
TypeList< T1, T2, T3, T4, T5, T6, T7, T8 > params_type
Definition: function_traits.h:176
static TRet apply(TRet(*fp)(T1, T2, T3, T4, T5, T6, T7), TypeValueList< params_type > &args)
Definition: function_traits.h:163
TRet return_type
Definition: function_traits.h:161
TypeList< T1, T2, T3, T4, T5, T6, T7 > params_type
Definition: function_traits.h:162
static TRet apply(TRet(*fp)(T1, T2, T3, T4, T5, T6), TypeValueList< params_type > &args)
Definition: function_traits.h:149
TypeList< T1, T2, T3, T4, T5, T6 > params_type
Definition: function_traits.h:148
TRet return_type
Definition: function_traits.h:147
TRet return_type
Definition: function_traits.h:133
static TRet apply(TRet(*fp)(T1, T2, T3, T4, T5), TypeValueList< params_type > &args)
Definition: function_traits.h:135
TypeList< T1, T2, T3, T4, T5 > params_type
Definition: function_traits.h:134
TypeList< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 > params_type
Definition: function_traits.h:207
TRet return_type
Definition: function_traits.h:206
static TRet apply(TRet(*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), TypeValueList< params_type > &args)
Definition: function_traits.h:208
TypeList< T1, T2, T3, T4, T5, T6, T7, T8, T9 > params_type
Definition: function_traits.h:191
static TRet apply(TRet(*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9), TypeValueList< params_type > &args)
Definition: function_traits.h:192
TRet return_type
Definition: function_traits.h:190
ug::bridge::func_traits< TRet(*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>::params_type TypeList< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 > params_type
Definition: function_traits.h:224
ug::bridge::func_traits< TRet(*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>::return_type TRet return_type
Definition: function_traits.h:223
ug::bridge::func_traits< TRet(*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>::apply static TRet apply(TRet(*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), TypeValueList< params_type > &args)
Definition: function_traits.h:225
ug::bridge::func_traits< TRet(*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>::return_type TRet return_type
Definition: function_traits.h:240
ug::bridge::func_traits< TRet(*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>::apply static TRet apply(TRet(*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12), TypeValueList< params_type > &args)
Definition: function_traits.h:242
ug::bridge::func_traits< TRet(*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>::params_type TypeList< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 > params_type
Definition: function_traits.h:241
TRet return_type
Definition: function_traits.h:120
static TRet apply(TRet(*fp)(T1, T2, T3, T4), TypeValueList< params_type > &args)
Definition: function_traits.h:122
TypeList< T1, T2, T3, T4 > params_type
Definition: function_traits.h:121
static TRet apply(TRet(*fp)(T1, T2, T3), TypeValueList< params_type > &args)
Definition: function_traits.h:109
TypeList< T1, T2, T3 > params_type
Definition: function_traits.h:108
TRet return_type
Definition: function_traits.h:107
TypeList< T1, T2 > params_type
Definition: function_traits.h:96
TRet return_type
Definition: function_traits.h:95
static TRet apply(TRet(*fp)(T1, T2), TypeValueList< params_type > &args)
Definition: function_traits.h:97
TypeList params_type
Definition: function_traits.h:401
static TRet apply(TRet(TClass::*fp)() const, const TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:402
FUNC_TRAITS_GENERAL_CONST_MEMBER
Definition: function_traits.h:400
static TRet apply(TRet(TClass::*fp)(), TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:268
TypeList params_type
Definition: function_traits.h:267
FUNC_TRAITS_GENERAL_NON_CONST_MEMBER
Definition: function_traits.h:266
TypeList< P1 > params_type
Definition: function_traits.h:413
FUNC_TRAITS_GENERAL_CONST_MEMBER
Definition: function_traits.h:412
static TRet apply(TRet(TClass::*fp)(P1) const, const TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:414
static TRet apply(TRet(TClass::*fp)(P1), TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:280
TypeList< P1 > params_type
Definition: function_traits.h:279
FUNC_TRAITS_GENERAL_NON_CONST_MEMBER
Definition: function_traits.h:278
TypeList< T1, T2, T3, T4, T5, T6, T7, T8, T9 > params_type
Definition: function_traits.h:511
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9) const, const TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:512
FUNC_TRAITS_GENERAL_CONST_MEMBER
Definition: function_traits.h:510
FUNC_TRAITS_GENERAL_NON_CONST_MEMBER
Definition: function_traits.h:363
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4, T5, T6, T7, T8), TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:365
TypeList< T1, T2, T3, T4, T5, T6, T7, T8 > params_type
Definition: function_traits.h:364
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4, T5, T6, T7, T8) const, const TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:499
FUNC_TRAITS_GENERAL_CONST_MEMBER
Definition: function_traits.h:497
TypeList< T1, T2, T3, T4, T5, T6, T7, T8 > params_type
Definition: function_traits.h:498
FUNC_TRAITS_GENERAL_NON_CONST_MEMBER
Definition: function_traits.h:376
TypeList< T1, T2, T3, T4, T5, T6, T7, T8, T9 > params_type
Definition: function_traits.h:377
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4, T5, T6, T7, T8, T9), TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:378
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4, T5, T6, T7), TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:352
FUNC_TRAITS_GENERAL_NON_CONST_MEMBER
Definition: function_traits.h:350
TypeList< T1, T2, T3, T4, T5, T6, T7 > params_type
Definition: function_traits.h:351
TypeList< T1, T2, T3, T4, T5, T6 > params_type
Definition: function_traits.h:472
FUNC_TRAITS_GENERAL_CONST_MEMBER
Definition: function_traits.h:471
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4, T5, T6) const, const TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:473
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4, T5, T6, T7) const, const TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:486
FUNC_TRAITS_GENERAL_CONST_MEMBER
Definition: function_traits.h:484
TypeList< T1, T2, T3, T4, T5, T6, T7 > params_type
Definition: function_traits.h:485
TypeList< T1, T2, T3, T4, T5, T6 > params_type
Definition: function_traits.h:338
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4, T5, T6), TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:339
FUNC_TRAITS_GENERAL_NON_CONST_MEMBER
Definition: function_traits.h:337
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4, T5) const, const TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:461
TypeList< T1, T2, T3, T4, T5 > params_type
Definition: function_traits.h:460
FUNC_TRAITS_GENERAL_CONST_MEMBER
Definition: function_traits.h:459
TypeList< T1, T2, T3, T4, T5 > params_type
Definition: function_traits.h:326
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4, T5), TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:327
FUNC_TRAITS_GENERAL_NON_CONST_MEMBER
Definition: function_traits.h:325
FUNC_TRAITS_GENERAL_CONST_MEMBER
Definition: function_traits.h:447
TypeList< T1, T2, T3, T4 > params_type
Definition: function_traits.h:448
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4) const, const TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:449
FUNC_TRAITS_GENERAL_NON_CONST_MEMBER
Definition: function_traits.h:313
TypeList< T1, T2, T3, T4 > params_type
Definition: function_traits.h:314
static TRet apply(TRet(TClass::*fp)(T1, T2, T3, T4), TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:315
TypeList< T1, T2, T3 > params_type
Definition: function_traits.h:436
static TRet apply(TRet(TClass::*fp)(T1, T2, T3) const, const TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:437
FUNC_TRAITS_GENERAL_CONST_MEMBER
Definition: function_traits.h:435
FUNC_TRAITS_GENERAL_NON_CONST_MEMBER
Definition: function_traits.h:301
TypeList< T1, T2, T3 > params_type
Definition: function_traits.h:302
static TRet apply(TRet(TClass::*fp)(T1, T2, T3), TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:303
TypeList< T1, T2 > params_type
Definition: function_traits.h:425
FUNC_TRAITS_GENERAL_CONST_MEMBER
Definition: function_traits.h:424
static TRet apply(TRet(TClass::*fp)(T1, T2) const, const TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:426
TypeList< T1, T2 > params_type
Definition: function_traits.h:291
FUNC_TRAITS_GENERAL_NON_CONST_MEMBER
Definition: function_traits.h:290
static TRet apply(TRet(TClass::*fp)(T1, T2), TClass *obj, TypeValueList< params_type > &args)
Definition: function_traits.h:292
Definition: function_traits.h:59