18 #ifndef FASTDELEGATEBIND_H
19 #define FASTDELEGATEBIND_H
22 #endif // _MSC_VER > 1000
44 #ifdef FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX
49 template <
class X,
class Y,
class RetType>
50 FastDelegate< RetType ( ) >
52 RetType (X::*func)( ),
56 return FastDelegate< RetType ( ) >(y, func);
59 template <
class X,
class Y,
class RetType>
60 FastDelegate< RetType ( ) >
62 RetType (X::*func)( )
const,
66 return FastDelegate< RetType ( ) >(y, func);
70 template <
class X,
class Y,
class RetType,
class Param1>
71 FastDelegate< RetType ( Param1 p1 ) >
73 RetType (X::*func)( Param1 p1 ),
77 return FastDelegate< RetType ( Param1 p1 ) >(y, func);
80 template <
class X,
class Y,
class RetType,
class Param1>
81 FastDelegate< RetType ( Param1 p1 ) >
83 RetType (X::*func)( Param1 p1 )
const,
87 return FastDelegate< RetType ( Param1 p1 ) >(y, func);
91 template <
class X,
class Y,
class RetType,
class Param1,
class Param2>
92 FastDelegate< RetType ( Param1 p1, Param2 p2 ) >
94 RetType (X::*func)( Param1 p1, Param2 p2 ),
98 return FastDelegate< RetType ( Param1 p1, Param2 p2 ) >(y, func);
101 template <
class X,
class Y,
class RetType,
class Param1,
class Param2>
102 FastDelegate< RetType ( Param1 p1, Param2 p2 ) >
104 RetType (X::*func)( Param1 p1, Param2 p2 )
const,
108 return FastDelegate< RetType ( Param1 p1, Param2 p2 ) >(y, func);
112 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3>
113 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3 ) >
115 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3 ),
119 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3 ) >(y, func);
122 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3>
123 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3 ) >
125 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3 )
const,
129 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3 ) >(y, func);
133 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3,
class Param4>
134 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4 ) >
136 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 ),
140 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4 ) >(y, func);
143 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3,
class Param4>
144 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4 ) >
146 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4 )
const,
150 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4 ) >(y, func);
154 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3,
class Param4,
class Param5>
155 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 ) >
157 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 ),
161 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 ) >(y, func);
164 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3,
class Param4,
class Param5>
165 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 ) >
167 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 )
const,
171 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5 ) >(y, func);
175 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3,
class Param4,
class Param5,
class Param6>
176 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 ) >
178 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 ),
182 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 ) >(y, func);
185 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3,
class Param4,
class Param5,
class Param6>
186 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 ) >
188 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 )
const,
192 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6 ) >(y, func);
196 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3,
class Param4,
class Param5,
class Param6,
class Param7>
197 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 ) >
199 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 ),
203 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 ) >(y, func);
206 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3,
class Param4,
class Param5,
class Param6,
class Param7>
207 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 ) >
209 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 )
const,
213 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7 ) >(y, func);
217 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3,
class Param4,
class Param5,
class Param6,
class Param7,
class Param8>
218 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ) >
220 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ),
224 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ) >(y, func);
227 template <
class X,
class Y,
class RetType,
class Param1,
class Param2,
class Param3,
class Param4,
class Param5,
class Param6,
class Param7,
class Param8>
228 FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ) >
230 RetType (X::*func)( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 )
const,
234 return FastDelegate< RetType ( Param1 p1, Param2 p2, Param3 p3, Param4 p4, Param5 p5, Param6 p6, Param7 p7, Param8 p8 ) >(y, func);
238 #endif //FASTDELEGATE_ALLOW_FUNCTION_TYPE_SYNTAX
242 #endif // !defined(FASTDELEGATEBIND_H)