8#ifndef META_OCEAN_BASE_CALLER_H 
    9#define META_OCEAN_BASE_CALLER_H 
   14#ifdef OCEAN_SUPPORT_RTTI 
   49template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
   66template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18>
 
   67class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, 
NullClass>
 
 
   82template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17>
 
   83class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, 
NullClass, 
NullClass>
 
 
   98template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16>
 
   99class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, 
NullClass, 
NullClass, 
NullClass>
 
 
  114template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15>
 
  115class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  130template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14>
 
  131class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  146template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13>
 
  147class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  162template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12>
 
  163class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  178template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11>
 
  179class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  194template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10>
 
  195class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  210template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9>
 
  211class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  226template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8>
 
  227class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  242template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7>
 
  243class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  258template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6>
 
  259class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  274template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5>
 
  275class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  290template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4>
 
  291class ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  306template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3>
 
  307class ParameterCounter<RT, PT0, PT1, PT2, PT3, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  322template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2>
 
  323class ParameterCounter<RT, PT0, PT1, PT2, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  338template <
typename RT, 
typename PT0, 
typename PT1>
 
  339class ParameterCounter<RT, PT0, PT1, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  354template <
typename RT, 
typename PT0>
 
  355class ParameterCounter<RT, PT0, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  370template <
typename RT>
 
  371class ParameterCounter<RT, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass, 
NullClass>
 
 
  382template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
  383inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::parameters()
 
 
  388template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18>
 
  389inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass>::parameters()
 
 
  394template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17>
 
  395inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass>::parameters()
 
 
  400template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16>
 
  401inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass>::parameters()
 
 
  406template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15>
 
  407inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  412template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14>
 
  413inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  418template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13>
 
  419inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  424template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12>
 
  425inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  430template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11>
 
  431inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  436template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10>
 
  437inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  442template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9>
 
  443inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  448template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8>
 
  449inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  454template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7>
 
  455inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  460template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6>
 
  461inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  466template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5>
 
  467inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  472template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4>
 
  473inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  478template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3>
 
  479inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  484template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2>
 
  485inline unsigned int ParameterCounter<RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  490template <
typename RT, 
typename PT0, 
typename PT1>
 
  491inline unsigned int ParameterCounter<RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  496template <
typename RT, 
typename PT0>
 
  497inline unsigned int ParameterCounter<RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  502template <
typename RT>
 
  503inline unsigned int ParameterCounter<RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::parameters()
 
 
  514template <
bool tIsReference>
 
  525        template <
typename T>
 
  526        static inline void assign(
typename std::add_lvalue_reference<T>::type target, 
const void* source);
 
  535        template <
typename T>
 
  536        static inline void* 
address(
typename std::add_lvalue_reference<T>::type parameter);
 
 
  539template <
bool tTargetIsReference>
 
  543    typedef typename std::add_const<T>::type SourceType;
 
  545    target = *
reinterpret_cast<SourceType*
>(source);
 
 
  548template <
bool tTargetIsReference>
 
  552    return reinterpret_cast<void *
>(¶meter);
 
 
  559    ocean_assert(
false && 
"Must not be called!");
 
 
  566    ocean_assert(
false && 
"Must not be called!");
 
 
  573    ocean_assert(
false && 
"Must not be called!");
 
 
  580    ocean_assert(
false && 
"Must not be called!");
 
 
  588    ocean_assert(
false && 
"Must not be called!");
 
 
  596    ocean_assert(
false && 
"Must not be called!");
 
 
  606template <
typename RT>
 
  646        virtual void setParameter(
const unsigned int index, 
const void* value) = 0;
 
  648#ifdef OCEAN_SUPPORT_RTTI 
  655        virtual const std::type_info& 
type(
const unsigned int index) 
const = 0;
 
  660template <
typename RT>
 
 
  694template <
typename RT, 
typename PT0 = NullClass, 
typename PT1 = NullClass, 
typename PT2 = NullClass, 
typename PT3 = NullClass, 
typename PT4 = NullClass, 
typename PT5 = NullClass, 
typename PT6 = NullClass, 
typename PT7 = NullClass, 
typename PT8 = NullClass, 
typename PT9 = NullClass, 
typename PT10 = NullClass, 
typename PT11 = NullClass, 
typename PT12 = NullClass, 
typename PT13 = NullClass, 
typename PT14 = NullClass, 
typename PT15 = NullClass, 
typename PT16 = NullClass, 
typename PT17 = NullClass, 
typename PT18 = NullClass, 
typename PT19 = NullClass>
 
  722        inline ParameterizedFunction(PT0 param0 = PT0(), PT1 param1 = PT1(), PT2 param2 = PT2(), PT3 param3 = PT3(), PT4 param4 = PT4(), PT5 param5 = PT5(), PT6 param6 = PT6(), PT7 param7 = PT7(), PT8 param8 = PT8(), PT9 param9 = PT9(), PT10 param10 = PT10(), PT11 param11 = PT11(), PT12 param12 = PT12(), PT13 param13 = PT13(), PT14 param14 = PT14(), PT15 param15 = PT15(), PT16 param16 = PT16(), PT17 param17 = PT17(), PT18 param18 = PT18(), PT19 param19 = PT19());
 
  747        virtual void setParameter(
const unsigned int index, 
const void* value);
 
  749#ifdef OCEAN_SUPPORT_RTTI 
  756        virtual const std::type_info& 
type(
const unsigned int index) 
const;
 
  823template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
  824inline ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::ParameterizedFunction(PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19) :
 
  825    functionParam0(param0),
 
  826    functionParam1(param1),
 
  827    functionParam2(param2),
 
  828    functionParam3(param3),
 
  829    functionParam4(param4),
 
  830    functionParam5(param5),
 
  831    functionParam6(param6),
 
  832    functionParam7(param7),
 
  833    functionParam8(param8),
 
  834    functionParam9(param9),
 
  835    functionParam10(param10),
 
  836    functionParam11(param11),
 
  837    functionParam12(param12),
 
  838    functionParam13(param13),
 
  839    functionParam14(param14),
 
  840    functionParam15(param15),
 
  841    functionParam16(param16),
 
  842    functionParam17(param17),
 
  843    functionParam18(param18),
 
  844    functionParam19(param19)
 
 
  849template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
  850ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::~ParameterizedFunction()
 
 
  855template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
  856unsigned int ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::parameters()
 const 
  858    return ParameterCounter<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::parameters();
 
 
  861template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
  862void* 
ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::parameter(
const unsigned int index)
 
  927            ocean_assert(
false && 
"Missing implementation!");
 
 
  932template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
  933void ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::setParameter(
const unsigned int index, 
const void* value)
 
 1018            ocean_assert(
false && 
"Missing implementation!");
 
 
 1022#ifdef OCEAN_SUPPORT_RTTI 
 1024template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1025const std::type_info& 
ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::type(
const unsigned int index)
 const 
 1060            return typeid(PT10);
 
 1063            return typeid(PT11);
 
 1066            return typeid(PT12);
 
 1069            return typeid(PT13);
 
 1072            return typeid(PT14);
 
 1075            return typeid(PT15);
 
 1078            return typeid(PT16);
 
 1081            return typeid(PT17);
 
 1084            return typeid(PT18);
 
 1087            return typeid(PT19);
 
 1090            ocean_assert(
false && 
"Invalid index!");
 
 
 
 1126template <
typename CT, 
typename RT, 
typename PT0 = NullClass, 
typename PT1 = NullClass, 
typename PT2 = NullClass, 
typename PT3 = NullClass, 
typename PT4 = NullClass, 
typename PT5 = NullClass, 
typename PT6 = NullClass, 
typename PT7 = NullClass, 
typename PT8 = NullClass, 
typename PT9 = NullClass, 
typename PT10 = NullClass, 
typename PT11 = NullClass, 
typename PT12 = NullClass, 
typename PT13 = NullClass, 
typename PT14 = NullClass, 
typename PT15 = NullClass, 
typename PT16 = NullClass, 
typename PT17 = NullClass, 
typename PT18 = NullClass, 
typename PT19 = NullClass>
 
 1127class ParameterizedMemberFunction : 
public ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>
 
 1136        typedef typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::Type FunctionType;
 
 1165        inline ParameterizedMemberFunction(CT &
object, 
FunctionType function, PT0 param0 = PT0(), PT1 param1 = PT1(), PT2 param2 = PT2(), PT3 param3 = PT3(), PT4 param4 = PT4(), PT5 param5 = PT5(), PT6 param6 = PT6(), PT7 param7 = PT7(), PT8 param8 = PT8(), PT9 param9 = PT9(), PT10 param10 = PT10(), PT11 param11 = PT11(), PT12 param12 = PT12(), PT13 param13 = PT13(), PT14 param14 = PT14(), PT15 param15 = PT15(), PT16 param16 = PT16(), PT17 param17 = PT17(), PT18 param18 = PT18(), PT19 param19 = PT19());
 
 1171        virtual RT 
call() 
const;
 
 
 1188template <
typename CT, 
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1189inline ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::ParameterizedMemberFunction(CT &
object, 
FunctionType function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19) :
 
 1190    ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>(param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19),
 
 1191    functionClass(&object),
 
 1192    functionPointer(function)
 
 
 1197template <
typename CT, 
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1198RT 
ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::call()
 const 
 1200    ocean_assert(functionClass != 
nullptr);
 
 1201    ocean_assert(functionPointer != 
nullptr);
 
 1202    return MemberFunctionCaller<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::call(functionClass, functionPointer,
 
 1203                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam0,
 
 1204                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam1,
 
 1205                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam2,
 
 1206                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam3,
 
 1207                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam4,
 
 1208                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam5,
 
 1209                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam6,
 
 1210                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam7,
 
 1211                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam8,
 
 1212                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam9,
 
 1213                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam10,
 
 1214                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam11,
 
 1215                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam12,
 
 1216                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam13,
 
 1217                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam14,
 
 1218                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam15,
 
 1219                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam16,
 
 1220                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam17,
 
 1221                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam18,
 
 1222                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam19);
 
 
 1225template <
typename CT, 
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1226ParameterizedFunctionBase<RT>* 
ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::copy()
 const 
 1228    ocean_assert(functionClass != 
nullptr);
 
 1229    ocean_assert(functionPointer != 
nullptr);
 
 1230    return new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>(*functionClass, functionPointer,
 
 1231                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam0,
 
 1232                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam1,
 
 1233                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam2,
 
 1234                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam3,
 
 1235                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam4,
 
 1236                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam5,
 
 1237                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam6,
 
 1238                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam7,
 
 1239                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam8,
 
 1240                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam9,
 
 1241                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam10,
 
 1242                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam11,
 
 1243                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam12,
 
 1244                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam13,
 
 1245                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam14,
 
 1246                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam15,
 
 1247                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam16,
 
 1248                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam17,
 
 1249                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam18,
 
 1250                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam19);
 
 
 1282template <
typename CT, 
typename RT, 
typename PT0 = NullClass, 
typename PT1 = NullClass, 
typename PT2 = NullClass, 
typename PT3 = NullClass, 
typename PT4 = NullClass, 
typename PT5 = NullClass, 
typename PT6 = NullClass, 
typename PT7 = NullClass, 
typename PT8 = NullClass, 
typename PT9 = NullClass, 
typename PT10 = NullClass, 
typename PT11 = NullClass, 
typename PT12 = NullClass, 
typename PT13 = NullClass, 
typename PT14 = NullClass, 
typename PT15 = NullClass, 
typename PT16 = NullClass, 
typename PT17 = NullClass, 
typename PT18 = NullClass, 
typename PT19 = NullClass>
 
 1283class ParameterizedMemberFunctionConst : 
public ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>
 
 1292        typedef typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::TypeConst FunctionType;
 
 1321        inline ParameterizedMemberFunctionConst(
const CT &
object, 
FunctionType function, PT0 param0 = PT0(), PT1 param1 = PT1(), PT2 param2 = PT2(), PT3 param3 = PT3(), PT4 param4 = PT4(), PT5 param5 = PT5(), PT6 param6 = PT6(), PT7 param7 = PT7(), PT8 param8 = PT8(), PT9 param9 = PT9(), PT10 param10 = PT10(), PT11 param11 = PT11(), PT12 param12 = PT12(), PT13 param13 = PT13(), PT14 param14 = PT14(), PT15 param15 = PT15(), PT16 param16 = PT16(), PT17 param17 = PT17(), PT18 param18 = PT18(), PT19 param19 = PT19());
 
 1327        virtual RT 
call() 
const;
 
 
 1344template <
typename CT, 
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1345inline ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::ParameterizedMemberFunctionConst(
const CT &
object, 
FunctionType function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19) :
 
 1346    ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>(param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19),
 
 1347    functionClass(&object),
 
 1348    functionPointer(function)
 
 
 1353template <
typename CT, 
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1354RT 
ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::call()
 const 
 1356    ocean_assert(functionClass != 
nullptr);
 
 1357    ocean_assert(functionPointer != 
nullptr);
 
 1358    return MemberFunctionCaller<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::call(functionClass, functionPointer,
 
 1359                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam0,
 
 1360                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam1,
 
 1361                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam2,
 
 1362                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam3,
 
 1363                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam4,
 
 1364                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam5,
 
 1365                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam6,
 
 1366                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam7,
 
 1367                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam8,
 
 1368                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam9,
 
 1369                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam10,
 
 1370                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam11,
 
 1371                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam12,
 
 1372                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam13,
 
 1373                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam14,
 
 1374                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam15,
 
 1375                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam16,
 
 1376                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam17,
 
 1377                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam18,
 
 1378                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam19);
 
 
 1381template <
typename CT, 
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1382ParameterizedFunctionBase<RT>* 
ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::copy()
 const 
 1384    ocean_assert(functionClass != 
nullptr);
 
 1385    ocean_assert(functionPointer != 
nullptr);
 
 1386    return new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>(*functionClass, functionPointer,
 
 1387                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam0,
 
 1388                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam1,
 
 1389                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam2,
 
 1390                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam3,
 
 1391                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam4,
 
 1392                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam5,
 
 1393                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam6,
 
 1394                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam7,
 
 1395                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam8,
 
 1396                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam9,
 
 1397                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam10,
 
 1398                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam11,
 
 1399                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam12,
 
 1400                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam13,
 
 1401                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam14,
 
 1402                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam15,
 
 1403                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam16,
 
 1404                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam17,
 
 1405                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam18,
 
 1406                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam19);
 
 
 1437template <
typename RT, 
typename PT0 = NullClass, 
typename PT1 = NullClass, 
typename PT2 = NullClass, 
typename PT3 = NullClass, 
typename PT4 = NullClass, 
typename PT5 = NullClass, 
typename PT6 = NullClass, 
typename PT7 = NullClass, 
typename PT8 = NullClass, 
typename PT9 = NullClass, 
typename PT10 = NullClass, 
typename PT11 = NullClass, 
typename PT12 = NullClass, 
typename PT13 = NullClass, 
typename PT14 = NullClass, 
typename PT15 = NullClass, 
typename PT16 = NullClass, 
typename PT17 = NullClass, 
typename PT18 = NullClass, 
typename PT19 = NullClass>
 
 1438class ParameterizedStaticFunction : 
public ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>
 
 1447        typedef typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::Type FunctionType;
 
 1475        inline ParameterizedStaticFunction(
FunctionType function, PT0 param0 = PT0(), PT1 param1 = PT1(), PT2 param2 = PT2(), PT3 param3 = PT3(), PT4 param4 = PT4(), PT5 param5 = PT5(), PT6 param6 = PT6(), PT7 param7 = PT7(), PT8 param8 = PT8(), PT9 param9 = PT9(), PT10 param10 = PT10(), PT11 param11 = PT11(), PT12 param12 = PT12(), PT13 param13 = PT13(), PT14 param14 = PT14(), PT15 param15 = PT15(), PT16 param16 = PT16(), PT17 param17 = PT17(), PT18 param18 = PT18(), PT19 param19 = PT19());
 
 1481        virtual RT 
call() 
const;
 
 
 1495template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1496inline ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::ParameterizedStaticFunction(
FunctionType function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19) :
 
 1497    ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>(param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19),
 
 1498    functionPointer(function)
 
 
 1503template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1504RT 
ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::call()
 const 
 1506    ocean_assert(functionPointer != 
nullptr);
 
 1507    return StaticFunctionCaller<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::call(functionPointer,
 
 1508                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam0,
 
 1509                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam1,
 
 1510                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam2,
 
 1511                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam3,
 
 1512                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam4,
 
 1513                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam5,
 
 1514                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam6,
 
 1515                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam7,
 
 1516                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam8,
 
 1517                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam9,
 
 1518                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam10,
 
 1519                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam11,
 
 1520                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam12,
 
 1521                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam13,
 
 1522                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam14,
 
 1523                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam15,
 
 1524                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam16,
 
 1525                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam17,
 
 1526                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam18,
 
 1527                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam19);
 
 
 1530template <
typename RT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1531ParameterizedFunctionBase<RT>* 
ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::copy()
 const 
 1533    ocean_assert(functionPointer != 
nullptr);
 
 1534    return new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>(functionPointer,
 
 1535                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam0,
 
 1536                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam1,
 
 1537                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam2,
 
 1538                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam3,
 
 1539                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam4,
 
 1540                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam5,
 
 1541                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam6,
 
 1542                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam7,
 
 1543                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam8,
 
 1544                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam9,
 
 1545                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam10,
 
 1546                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam11,
 
 1547                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam12,
 
 1548                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam13,
 
 1549                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam14,
 
 1550                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam15,
 
 1551                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam16,
 
 1552                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam17,
 
 1553                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam18,
 
 1554                ParameterizedFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::functionParam19);
 
 
 1564template <
typename RT>
 
 1591        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function);
 
 1599        template <
typename PT0>
 
 1600        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0);
 
 1609        template <
typename PT0, 
typename PT1>
 
 1610        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1);
 
 1620        template <
typename PT0, 
typename PT1, 
typename PT2>
 
 1621        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2);
 
 1632        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3>
 
 1633        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3);
 
 1645        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4>
 
 1646        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4);
 
 1659        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5>
 
 1660        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5);
 
 1674        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6>
 
 1675        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6);
 
 1690        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7>
 
 1691        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7);
 
 1707        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8>
 
 1708        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8);
 
 1725        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9>
 
 1726        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9);
 
 1744        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10>
 
 1745        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10);
 
 1764        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11>
 
 1765        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11);
 
 1785        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12>
 
 1786        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12);
 
 1807        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13>
 
 1808        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13);
 
 1830        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14>
 
 1831        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14);
 
 1854        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15>
 
 1855        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15);
 
 1879        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16>
 
 1880        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16);
 
 1905        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17>
 
 1906        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17);
 
 1932        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18>
 
 1933        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18);
 
 1960        template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 1961        static inline Caller<RT> createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19);
 
 1969        template <
typename CT>
 
 1970        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function);
 
 1978        template <
typename CT>
 
 1979        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function);
 
 1988        template <
typename CT, 
typename PT0>
 
 1989        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0);
 
 1998        template <
typename CT, 
typename PT0>
 
 1999        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0);
 
 2009        template <
typename CT, 
typename PT0, 
typename PT1>
 
 2010        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1);
 
 2020        template <
typename CT, 
typename PT0, 
typename PT1>
 
 2021        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1);
 
 2032        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2>
 
 2033        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2);
 
 2044        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2>
 
 2045        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2);
 
 2057        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3>
 
 2058        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3);
 
 2070        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3>
 
 2071        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3);
 
 2084        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4>
 
 2085        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4);
 
 2098        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4>
 
 2099        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4);
 
 2113        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5>
 
 2114        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5);
 
 2128        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5>
 
 2129        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5);
 
 2144        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6>
 
 2145        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6);
 
 2160        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6>
 
 2161        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6);
 
 2177        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7>
 
 2178        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7);
 
 2194        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7>
 
 2195        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7);
 
 2212        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8>
 
 2213        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8);
 
 2230        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8>
 
 2231        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8);
 
 2249        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9>
 
 2250        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9);
 
 2268        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9>
 
 2269        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9);
 
 2288        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10>
 
 2289        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10);
 
 2308        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10>
 
 2309        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10);
 
 2329        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11>
 
 2330        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11);
 
 2350        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11>
 
 2351        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11);
 
 2372        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12>
 
 2373        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12);
 
 2394        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12>
 
 2395        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12);
 
 2417        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13>
 
 2418        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13);
 
 2440        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13>
 
 2441        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13);
 
 2464        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14>
 
 2465        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14);
 
 2488        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14>
 
 2489        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14);
 
 2513        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15>
 
 2514        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15);
 
 2538        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15>
 
 2539        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15);
 
 2564        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16>
 
 2565        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16);
 
 2590        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16>
 
 2591        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16);
 
 2617        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17>
 
 2618        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17);
 
 2644        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17>
 
 2645        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17);
 
 2672        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18>
 
 2673        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18);
 
 2700        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18>
 
 2701        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18);
 
 2729        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 2730        static inline Caller<RT> create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19);
 
 2758        template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 2759        static inline Caller<RT> create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19);
 
 2778        template <
typename T> T 
parameter(
const unsigned int index);
 
 2786        template <
typename T> 
void setParameter(
const unsigned int index, 
const T& value);
 
 2832        explicit inline operator bool() 
const;
 
 2848template <
typename RT>
 
 2850    callerFunction(nullptr)
 
 
 2855template <
typename RT>
 
 2857    callerFunction(caller.callerFunction ? caller.callerFunction->copy() : nullptr)
 
 
 2862template <
typename RT>
 
 2864    callerFunction(caller.callerFunction)
 
 2866    caller.callerFunction = 
nullptr;
 
 
 2869template <
typename RT>
 
 2871    callerFunction(base)
 
 
 
 2876template <
typename RT>
 
 2877inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function)
 
 2879    return Caller<RT>(
new ParameterizedStaticFunction<RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function));
 
 
 2882template <
typename RT>
 
 2883template <
typename PT0>
 
 2884inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0)
 
 2886    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0));
 
 
 2889template <
typename RT>
 
 2890template <
typename PT0, 
typename PT1>
 
 2891inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1)
 
 2893    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1));
 
 
 2896template <
typename RT>
 
 2897template <
typename PT0, 
typename PT1, 
typename PT2>
 
 2898inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2)
 
 2900    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2));
 
 
 2903template <
typename RT>
 
 2904template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3>
 
 2905inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3)
 
 2907    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3));
 
 
 2910template <
typename RT>
 
 2911template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4>
 
 2912inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4)
 
 2914    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4));
 
 
 2917template <
typename RT>
 
 2918template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5>
 
 2919inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5)
 
 2921    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5));
 
 
 2924template <
typename RT>
 
 2925template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6>
 
 2926inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6)
 
 2928    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6));
 
 
 2931template <
typename RT>
 
 2932template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7>
 
 2933inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7)
 
 2935    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7));
 
 
 2938template <
typename RT>
 
 2939template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8>
 
 2940inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8)
 
 2942    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8));
 
 
 2945template <
typename RT>
 
 2946template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9>
 
 2947inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9)
 
 2949    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9));
 
 
 2952template <
typename RT>
 
 2953template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10>
 
 2954inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10)
 
 2956    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10));
 
 
 2959template <
typename RT>
 
 2960template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11>
 
 2961inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11)
 
 2963    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11));
 
 
 2966template <
typename RT>
 
 2967template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12>
 
 2968inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12)
 
 2970    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12));
 
 
 2973template <
typename RT>
 
 2974template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13>
 
 2975inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13)
 
 2977    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13));
 
 
 2980template <
typename RT>
 
 2981template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14>
 
 2982inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14)
 
 2984    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14));
 
 
 2987template <
typename RT>
 
 2988template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15>
 
 2989inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15)
 
 2991    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15));
 
 
 2994template <
typename RT>
 
 2995template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16>
 
 2996inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16)
 
 2998    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16));
 
 
 3001template <
typename RT>
 
 3002template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17>
 
 3003inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17)
 
 3005    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17));
 
 
 3008template <
typename RT>
 
 3009template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18>
 
 3010inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18)
 
 3012    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18));
 
 
 3015template <
typename RT>
 
 3016template <
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 3017inline Caller<RT> Caller<RT>::createStatic(
typename StaticFunctionPointerMaker<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19)
 
 3019    return Caller<RT>(
new ParameterizedStaticFunction<RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>(function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19));
 
 
 3022template <
typename RT>
 
 3023template <
typename CT>
 
 3024inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function)
 
 3026    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function));
 
 
 3029template <
typename RT>
 
 3030template <
typename CT>
 
 3031inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function)
 
 3033    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function));
 
 
 3036template <
typename RT>
 
 3037template <
typename CT, 
typename PT0>
 
 3038inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0)
 
 3040    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0));
 
 
 3043template <
typename RT>
 
 3044template <
typename CT, 
typename PT0>
 
 3045inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0)
 
 3047    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0));
 
 
 3050template <
typename RT>
 
 3051template <
typename CT, 
typename PT0, 
typename PT1>
 
 3052inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1)
 
 3054    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1));
 
 
 3057template <
typename RT>
 
 3058template <
typename CT, 
typename PT0, 
typename PT1>
 
 3059inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1)
 
 3061    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1));
 
 
 3064template <
typename RT>
 
 3065template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2>
 
 3066inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2)
 
 3068    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2));
 
 
 3071template <
typename RT>
 
 3072template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2>
 
 3073inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2)
 
 3075    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2));
 
 
 3078template <
typename RT>
 
 3079template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3>
 
 3080inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3)
 
 3082    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3));
 
 
 3085template <
typename RT>
 
 3086template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3>
 
 3087inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3)
 
 3089    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3));
 
 
 3092template <
typename RT>
 
 3093template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4>
 
 3094inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4)
 
 3096    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4));
 
 
 3099template <
typename RT>
 
 3100template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4>
 
 3101inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4)
 
 3103    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4));
 
 
 3106template <
typename RT>
 
 3107template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5>
 
 3108inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5)
 
 3110    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5));
 
 
 3113template <
typename RT>
 
 3114template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5>
 
 3115inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5)
 
 3117    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5));
 
 
 3120template <
typename RT>
 
 3121template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6>
 
 3122inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6)
 
 3124    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6));
 
 
 3127template <
typename RT>
 
 3128template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6>
 
 3129inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6)
 
 3131    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6));
 
 
 3134template <
typename RT>
 
 3135template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7>
 
 3136inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7)
 
 3138    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7));
 
 
 3141template <
typename RT>
 
 3142template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7>
 
 3143inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7)
 
 3145    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7));
 
 
 3148template <
typename RT>
 
 3149template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8>
 
 3150inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8)
 
 3152    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8));
 
 
 3155template <
typename RT>
 
 3156template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8>
 
 3157inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8)
 
 3159    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8));
 
 
 3162template <
typename RT>
 
 3163template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9>
 
 3164inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9)
 
 3166    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9));
 
 
 3169template <
typename RT>
 
 3170template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9>
 
 3171inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9)
 
 3173    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9));
 
 
 3176template <
typename RT>
 
 3177template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10>
 
 3178inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10)
 
 3180    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10));
 
 
 3183template <
typename RT>
 
 3184template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10>
 
 3185inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10)
 
 3187    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10));
 
 
 3190template <
typename RT>
 
 3191template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11>
 
 3192inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11)
 
 3194    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11));
 
 
 3197template <
typename RT>
 
 3198template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11>
 
 3199inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11)
 
 3201    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11));
 
 
 3204template <
typename RT>
 
 3205template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12>
 
 3206inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12)
 
 3208    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12));
 
 
 3211template <
typename RT>
 
 3212template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12>
 
 3213inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12)
 
 3215    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12));
 
 
 3218template <
typename RT>
 
 3219template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13>
 
 3220inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13)
 
 3222    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13));
 
 
 3225template <
typename RT>
 
 3226template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13>
 
 3227inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13)
 
 3229    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13));
 
 
 3232template <
typename RT>
 
 3233template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14>
 
 3234inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14)
 
 3236    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14));
 
 
 3239template <
typename RT>
 
 3240template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14>
 
 3241inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14)
 
 3243    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14));
 
 
 3246template <
typename RT>
 
 3247template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15>
 
 3248inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15)
 
 3250    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15));
 
 
 3253template <
typename RT>
 
 3254template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15>
 
 3255inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15)
 
 3257    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15));
 
 
 3260template <
typename RT>
 
 3261template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16>
 
 3262inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16)
 
 3264    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16));
 
 
 3267template <
typename RT>
 
 3268template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16>
 
 3269inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16)
 
 3271    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16));
 
 
 3274template <
typename RT>
 
 3275template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17>
 
 3276inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17)
 
 3278    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17));
 
 
 3281template <
typename RT>
 
 3282template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17>
 
 3283inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17)
 
 3285    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17));
 
 
 3288template <
typename RT>
 
 3289template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18>
 
 3290inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18)
 
 3292    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18));
 
 
 3295template <
typename RT>
 
 3296template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18>
 
 3297inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18)
 
 3299    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18));
 
 
 3302template <
typename RT>
 
 3303template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 3304inline Caller<RT> Caller<RT>::create(CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19)
 
 3306    return Caller<RT>(
new ParameterizedMemberFunction<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19));
 
 
 3309template <
typename RT>
 
 3310template <
typename CT, 
typename PT0, 
typename PT1, 
typename PT2, 
typename PT3, 
typename PT4, 
typename PT5, 
typename PT6, 
typename PT7, 
typename PT8, 
typename PT9, 
typename PT10, 
typename PT11, 
typename PT12, 
typename PT13, 
typename PT14, 
typename PT15, 
typename PT16, 
typename PT17, 
typename PT18, 
typename PT19>
 
 3311inline Caller<RT> Caller<RT>::create(
const CT& 
object, 
typename MemberFunctionPointerMaker<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19)
 
 3313    return Caller<RT>(
new ParameterizedMemberFunctionConst<CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19>(
object, function, param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, param10, param11, param12, param13, param14, param15, param16, param17, param18, param19));
 
 
 3316template <
typename RT>
 
 3319    delete callerFunction;
 
 
 3322template <
typename RT>
 
 3325    ocean_assert(callerFunction != 
nullptr);
 
 3326    if (callerFunction == 
nullptr)
 
 3331    return callerFunction->parameters();
 
 
 3334template <
typename RT>
 
 3335template <
typename T>
 
 3338    ocean_assert(callerFunction != 
nullptr);
 
 3340#ifdef OCEAN_SUPPORT_RTTI 
 3341    ocean_assert(callerFunction->type(index) == 
typeid(T) && 
"The parameter has a different type.");
 
 3344    return *
reinterpret_cast<T*
>(callerFunction->parameter(index));
 
 
 3347template <
typename RT>
 
 3348template <
typename T>
 
 3351    ocean_assert(callerFunction != 
nullptr);
 
 3353#ifdef OCEAN_SUPPORT_RTTI 
 3354    ocean_assert(callerFunction->type(index) == 
typeid(T) && 
"The parameter has a different type.");
 
 3357    callerFunction->setParameter(index, &value);
 
 
 3360template <
typename RT>
 
 3363    return callerFunction == 
nullptr;
 
 
 3366template <
typename RT>
 
 3369    ocean_assert(callerFunction != 
nullptr);
 
 3371    return callerFunction->call();
 
 
 3374template <
typename RT>
 
 3377    delete callerFunction;
 
 
 3383template <
typename RT>
 
 3386    if (
this != &caller)
 
 3388        delete callerFunction;
 
 3391        caller.callerFunction = 
nullptr;
 
 
 3397template <
typename RT>
 
 3400    if (callerFunction == 
nullptr && caller.
callerFunction == 
nullptr)
 
 3405    if ((callerFunction != 
nullptr && caller.
callerFunction == 
nullptr)
 
 3406            || (callerFunction == 
nullptr && caller.
callerFunction != 
nullptr))
 
 
 3414template <
typename RT>
 
 3417    return !(*
this == caller);
 
 
 3420template <
typename RT>
 
 3423    return callerFunction != 
nullptr;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This class implements a callback function container using defined function parameters.
Definition Caller.h:1566
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3304
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3150
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3255
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3164
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3136
T parameter(const unsigned int index)
Template function to return a parameter.
Definition Caller.h:3336
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3290
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:3010
void setParameter(const unsigned int index, const T &value)
Template function to changes a parameter.
Definition Caller.h:3349
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:3017
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0)
Creates a new caller container for a member function with no function parameter.
Definition Caller.h:3038
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3297
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3213
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2982
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2933
~Caller()
Destructs a caller container.
Definition Caller.h:3317
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3129
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:3003
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3276
Caller(const Caller &caller)
Copies a caller container.
Definition Caller.h:2856
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3122
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3241
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2)
Creates a new caller container for a member function and specifies the later used function parameter.
Definition Caller.h:3066
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2905
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2975
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3178
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0)
Creates a new caller container for a static function and specifies the later used function parameter.
Definition Caller.h:2884
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1)
Creates a new caller container for a member function with no function parameter.
Definition Caller.h:3052
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3269
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2926
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3248
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3115
unsigned int parameters() const
Returns the number of function parameters.
Definition Caller.h:3323
bool operator==(const Caller &caller) const
Returns whether two callback container addressing the same class object and the same local member fun...
Definition Caller.h:3398
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2898
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2891
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3108
Caller & operator=(Caller &&caller)
Moves a callback container.
Definition Caller.h:3384
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0)
Creates a new caller container for a const member function with no function parameter.
Definition Caller.h:3045
Caller()
Creates an empty caller container.
Definition Caller.h:2849
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function)
Creates a new caller container for a static function with no function parameter.
Definition Caller.h:2877
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2954
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3234
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1)
Creates a new caller container for a const member function with no function parameter.
Definition Caller.h:3059
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3199
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3220
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3171
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3311
Caller & operator=(const Caller &caller)
Assigns a callback container.
Definition Caller.h:3375
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2996
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2968
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3094
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2919
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3157
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3206
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2961
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3087
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2940
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3101
ParameterizedFunctionBase< RT > * callerFunction
Base function container.
Definition Caller.h:2845
bool isNull() const
Returns whether this container holds no function.
Definition Caller.h:3361
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3192
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3283
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2912
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3185
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2989
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3262
Caller(ParameterizedFunctionBase< RT > *base)
Creates a new caller object by a given base parameterized function object.
Definition Caller.h:2870
RT operator()() const
Calls the encapsulated callback function and uses the previously defined function parameters.
Definition Caller.h:3367
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3227
bool operator!=(const Caller &caller) const
Returns whether two callback container addressing not the same class object or not the same local mem...
Definition Caller.h:3415
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function)
Creates a new caller container for a member function with no function parameter.
Definition Caller.h:3024
Caller(Caller &&caller)
Movies a caller container.
Definition Caller.h:2863
static Caller< RT > createStatic(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9)
Creates a new caller container for a static function and specifies the later used function parameters...
Definition Caller.h:2947
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3073
static Caller< RT > create(CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::Type function, PT0 param0, PT1 param1, PT2 param2, PT3 param3)
Creates a new caller container for a member function and specifies the later used function parameters...
Definition Caller.h:3080
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7)
Creates a new caller container for a const member function and specifies the later used function para...
Definition Caller.h:3143
static Caller< RT > create(const CT &object, typename MemberFunctionPointerMaker< CT, RT, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass, NullClass >::TypeConst function)
Creates a new caller container for a const member function with no function parameter.
Definition Caller.h:3031
This class implements a simple helper class allowing to access the value of an arbitrary data type.
Definition Caller.h:516
static void assign(typename std::add_lvalue_reference< T >::type target, const void *source)
Assigns the value of a source parameter to a target parameter.
Definition Caller.h:541
static void * address(typename std::add_lvalue_reference< T >::type parameter)
Receives the address of a specified parameter.
Definition Caller.h:550
static RT call(CT *functionClass, typename MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type functionPointer, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19)
Calls a function defined by the function pointer the class object and the function parameters.
Definition Callback.h:1904
This class implements a helper class providing a definition of a member function pointer only.
Definition Callback.h:81
This class implements a helper class providing the number of parameters of a parameterized function.
Definition Caller.h:51
static unsigned int parameters()
Returns the number of parameters for a given function type.
Definition Caller.h:383
This class is the base class for a parameterized function container.
Definition Caller.h:608
virtual unsigned int parameters() const =0
Returns the number of function parameters.
virtual void * parameter(const unsigned int index)=0
Returns a specified parameter as a void pointer to the parameter's pointer.
virtual RT call() const =0
Calls the internal encapsulated function and uses the specified parameters.
virtual const std::type_info & type(const unsigned int index) const =0
Returns the parameter type of a specific parameter.
virtual ParameterizedFunctionBase * copy() const =0
Creates a copy of the entire derivated object.
virtual ~ParameterizedFunctionBase()
Destructs a parameterized function object.
Definition Caller.h:661
virtual void setParameter(const unsigned int index, const void *value)=0
Sets a specified parameter.
This class implements an parameterized function container.
Definition Caller.h:696
PT6 functionParam6
Seventh function parameter.
Definition Caller.h:781
PT0 functionParam0
First function parameter.
Definition Caller.h:763
PT5 functionParam5
Sixth function parameter.
Definition Caller.h:778
PT17 functionParam17
18th function parameter.
Definition Caller.h:814
virtual void setParameter(const unsigned int index, const void *value)
Sets a specified parameter as long as the parameter is not a reference.
Definition Caller.h:933
PT15 functionParam15
16th function parameter.
Definition Caller.h:808
virtual const std::type_info & type(const unsigned int index) const
Returns the parameter type of a specific parameter.
Definition Caller.h:1025
PT13 functionParam13
14th function parameter.
Definition Caller.h:802
ParameterizedFunction(PT0 param0=PT0(), PT1 param1=PT1(), PT2 param2=PT2(), PT3 param3=PT3(), PT4 param4=PT4(), PT5 param5=PT5(), PT6 param6=PT6(), PT7 param7=PT7(), PT8 param8=PT8(), PT9 param9=PT9(), PT10 param10=PT10(), PT11 param11=PT11(), PT12 param12=PT12(), PT13 param13=PT13(), PT14 param14=PT14(), PT15 param15=PT15(), PT16 param16=PT16(), PT17 param17=PT17(), PT18 param18=PT18(), PT19 param19=PT19())
Creates a new function object.
Definition Caller.h:824
virtual void * parameter(const unsigned int index)
Returns a specified parameter as a void pointer to the parameter's pointer.
Definition Caller.h:862
PT3 functionParam3
Fourth function parameter.
Definition Caller.h:772
PT18 functionParam18
19th function parameter.
Definition Caller.h:817
PT2 functionParam2
Third function parameter.
Definition Caller.h:769
PT9 functionParam9
Tenth function parameter.
Definition Caller.h:790
PT16 functionParam16
17th function parameter.
Definition Caller.h:811
PT10 functionParam10
Eleventh function parameter.
Definition Caller.h:793
PT8 functionParam8
Ninth function parameter.
Definition Caller.h:787
virtual ~ParameterizedFunction()
Destructs a parameter function.
Definition Caller.h:850
virtual unsigned int parameters() const
Returns the number of function parameters.
Definition Caller.h:856
PT1 functionParam1
Second function parameter.
Definition Caller.h:766
PT14 functionParam14
15th function parameter.
Definition Caller.h:805
PT7 functionParam7
Eighth function parameter.
Definition Caller.h:784
PT4 functionParam4
Fifth function parameter.
Definition Caller.h:775
PT11 functionParam11
Twelfth function parameter.
Definition Caller.h:796
PT12 functionParam12
13th function parameter.
Definition Caller.h:799
PT19 functionParam19
20th function parameter.
Definition Caller.h:820
This class implements an parameterized const member function container.
Definition Caller.h:1284
virtual RT call() const
Calls the internal encapsulated function by the used of the previously defined parameters.
Definition Caller.h:1354
ParameterizedMemberFunctionConst(const CT &object, FunctionType function, PT0 param0=PT0(), PT1 param1=PT1(), PT2 param2=PT2(), PT3 param3=PT3(), PT4 param4=PT4(), PT5 param5=PT5(), PT6 param6=PT6(), PT7 param7=PT7(), PT8 param8=PT8(), PT9 param9=PT9(), PT10 param10=PT10(), PT11 param11=PT11(), PT12 param12=PT12(), PT13 param13=PT13(), PT14 param14=PT14(), PT15 param15=PT15(), PT16 param16=PT16(), PT17 param17=PT17(), PT18 param18=PT18(), PT19 param19=PT19())
Creates a new const function object.
Definition Caller.h:1345
FunctionType functionPointer
Function pointer of the member function.
Definition Caller.h:1341
MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::TypeConst FunctionType
Definition of a const function pointer for the encapsulated function.
Definition Caller.h:1292
const CT * functionClass
Class object holding the member function.
Definition Caller.h:1338
virtual ParameterizedFunctionBase< RT > * copy() const
Creates a copy of this function container.
Definition Caller.h:1382
This class implements an parameterized member function container.
Definition Caller.h:1128
FunctionType functionPointer
Function pointer of the member function.
Definition Caller.h:1185
virtual RT call() const
Calls the internal encapsulated function by the used of the previously defined parameters.
Definition Caller.h:1198
virtual ParameterizedFunctionBase< RT > * copy() const
Creates a copy of this function container.
Definition Caller.h:1226
ParameterizedMemberFunction(CT &object, FunctionType function, PT0 param0=PT0(), PT1 param1=PT1(), PT2 param2=PT2(), PT3 param3=PT3(), PT4 param4=PT4(), PT5 param5=PT5(), PT6 param6=PT6(), PT7 param7=PT7(), PT8 param8=PT8(), PT9 param9=PT9(), PT10 param10=PT10(), PT11 param11=PT11(), PT12 param12=PT12(), PT13 param13=PT13(), PT14 param14=PT14(), PT15 param15=PT15(), PT16 param16=PT16(), PT17 param17=PT17(), PT18 param18=PT18(), PT19 param19=PT19())
Creates a new function object.
Definition Caller.h:1189
CT * functionClass
Class object holding the member function.
Definition Caller.h:1182
MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type FunctionType
Definition of a function pointer for the encapsulated function.
Definition Caller.h:1136
This class implements an parameterized static function container.
Definition Caller.h:1439
FunctionType functionPointer
Function pointer of the member function.
Definition Caller.h:1492
virtual RT call() const
Calls the internal encapsulated function by the used of the previously defined parameters.
Definition Caller.h:1504
StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type FunctionType
Definition of a function pointer for the encapsulated function.
Definition Caller.h:1447
virtual ParameterizedFunctionBase< RT > * copy() const
Creates a copy of this function container.
Definition Caller.h:1531
ParameterizedStaticFunction(FunctionType function, PT0 param0=PT0(), PT1 param1=PT1(), PT2 param2=PT2(), PT3 param3=PT3(), PT4 param4=PT4(), PT5 param5=PT5(), PT6 param6=PT6(), PT7 param7=PT7(), PT8 param8=PT8(), PT9 param9=PT9(), PT10 param10=PT10(), PT11 param11=PT11(), PT12 param12=PT12(), PT13 param13=PT13(), PT14 param14=PT14(), PT15 param15=PT15(), PT16 param16=PT16(), PT17 param17=PT17(), PT18 param18=PT18(), PT19 param19=PT19())
Creates a new function object.
Definition Caller.h:1496
static RT call(typename StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >::Type functionPointer, PT0 param0, PT1 param1, PT2 param2, PT3 param3, PT4 param4, PT5 param5, PT6 param6, PT7 param7, PT8 param8, PT9 param9, PT10 param10, PT11 param11, PT12 param12, PT13 param13, PT14 param14, PT15 param15, PT16 param16, PT17 param17, PT18 param18, PT19 param19)
Calls a function defined by the function pointer the class object and the function parameters.
Definition Callback.h:2875
This class is a helper class providing a definition of a static function pointer only.
Definition Callback.h:522
{} NullClass
Definition of a class holding no objects.
Definition Callback.h:22
The namespace covering the entire Ocean framework.
Definition Accessor.h:15