28 #if !defined(_SQRAT_OVERLOAD_METHODS_H_)
29 #define _SQRAT_OVERLOAD_METHODS_H_
34 #include "sqratTypes.h"
35 #include "sqratUtil.h"
36 #include "sqratGlobalMethods.h"
37 #include "sqratMemberMethods.h"
48 class SqOverloadName {
51 static string Get(
const SQChar* name,
int args) {
52 std::basic_stringstream<SQChar> overloadName;
53 overloadName << _SC(
"__sqrat_ol_ ") << name << _SC(
"_") << args;
55 return overloadName.str();
68 static SQInteger Func(HSQUIRRELVM vm) {
70 int argCount = sq_gettop(vm) - 2;
72 const SQChar* funcName;
73 sq_getstring(vm, -1, &funcName);
75 string overloadName = SqOverloadName::Get(funcName, argCount);
77 sq_pushstring(vm, overloadName.c_str(), -1);
79 #if !defined (SCRAT_NO_ERROR_CHECKING)
80 if(SQ_FAILED(sq_get(vm, 1))) {
81 return sq_throwerror(vm, _SC(
"wrong number of parameters"));
88 for(
int i = 1; i <= argCount + 1; ++i) {
94 #if !defined (SCRAT_NO_ERROR_CHECKING)
110 class SqOverload<void> {
113 static SQInteger Func(HSQUIRRELVM vm) {
115 int argCount = sq_gettop(vm) - 2;
117 const SQChar* funcName;
118 sq_getstring(vm, -1, &funcName);
120 string overloadName = SqOverloadName::Get(funcName, argCount);
122 sq_pushstring(vm, overloadName.c_str(), -1);
124 #if !defined (SCRAT_NO_ERROR_CHECKING)
125 if(SQ_FAILED(sq_get(vm, 1))) {
126 return sq_throwerror(vm, _SC(
"wrong number of parameters"));
133 for(
int i = 1; i <= argCount + 1; ++i) {
139 #if !defined (SCRAT_NO_ERROR_CHECKING)
156 SQFUNCTION SqGlobalOverloadedFunc(R (*)()) {
157 return &SqGlobal<R>::template Func0<true>;
161 SQFUNCTION SqGlobalOverloadedFunc(R & (*)()) {
162 return &SqGlobal<R&>::template Func0<true>;
166 template <
class R,
class A1>
167 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1)) {
168 return &SqGlobal<R>::template Func1<A1, 2, true>;
171 template <
class R,
class A1>
172 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1)) {
173 return &SqGlobal<R&>::template Func1<A1, 2, true>;
177 template <
class R,
class A1,
class A2>
178 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2)) {
179 return &SqGlobal<R>::template Func2<A1, A2, 2, true>;
182 template <
class R,
class A1,
class A2>
183 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2)) {
184 return &SqGlobal<R&>::template Func2<A1, A2, 2, true>;
188 template <
class R,
class A1,
class A2,
class A3>
189 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3)) {
190 return &SqGlobal<R>::template Func3<A1, A2, A3, 2, true>;
193 template <
class R,
class A1,
class A2,
class A3>
194 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3)) {
195 return &SqGlobal<R&>::template Func3<A1, A2, A3, 2, true>;
199 template <
class R,
class A1,
class A2,
class A3,
class A4>
200 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4)) {
201 return &SqGlobal<R>::template Func4<A1, A2, A3, A4, 2, true>;
204 template <
class R,
class A1,
class A2,
class A3,
class A4>
205 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4)) {
206 return &SqGlobal<R& >::template Func4<A1, A2, A3, A4, 2, true>;
210 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
211 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5)) {
212 return &SqGlobal<R>::template Func5<A1, A2, A3, A4, A5, 2, true>;
215 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
216 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5)) {
217 return &SqGlobal<R&>::template Func5<A1, A2, A3, A4, A5, 2, true>;
221 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
222 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6)) {
223 return &SqGlobal<R>::template Func6<A1, A2, A3, A4, A5, A6, 2, true>;
226 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
227 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6)) {
228 return &SqGlobal<R&>::template Func6<A1, A2, A3, A4, A5, A6, 2, true>;
232 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
233 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7)) {
234 return &SqGlobal<R>::template Func7<A1, A2, A3, A4, A5, A6, A7, 2, true>;
237 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
238 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7)) {
239 return &SqGlobal<R&>::template Func7<A1, A2, A3, A4, A5, A6, A7, 2, true>;
243 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
244 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8)) {
245 return &SqGlobal<R>::template Func8<A1, A2, A3, A4, A5, A6, A7, A8, 2, true>;
248 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
249 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8)) {
250 return &SqGlobal<R&>::template Func8<A1, A2, A3, A4, A5, A6, A7, A8, 2, true>;
254 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
255 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)) {
256 return &SqGlobal<R>::template Func9<A1, A2, A3, A4, A5, A6, A7, A8, A9, 2, true>;
259 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
260 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)) {
261 return &SqGlobal<R&>::template Func9<A1, A2, A3, A4, A5, A6, A7, A8, A9, 2, true>;
265 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
266 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)) {
267 return &SqGlobal<R>::template Func10<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, 2, true>;
270 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
271 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)) {
272 return &SqGlobal<R&>::template Func10<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, 2, true>;
276 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
277 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)) {
278 return &SqGlobal<R>::template Func11<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, 2, true>;
281 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
282 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)) {
283 return &SqGlobal<R&>::template Func11<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, 2, true>;
287 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
288 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)) {
289 return &SqGlobal<R>::template Func12<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, 2, true>;
292 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
293 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)) {
294 return &SqGlobal<R&>::template Func12<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, 2, true>;
298 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
299 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)) {
300 return &SqGlobal<R>::template Func13<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, 2, true>;
303 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
304 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)) {
305 return &SqGlobal<R&>::template Func13<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, 2, true>;
309 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
310 SQFUNCTION SqGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)) {
311 return &SqGlobal<R>::template Func14<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, 2, true>;
313 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
314 SQFUNCTION SqGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)) {
315 return &SqGlobal<R&>::template Func14<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, 2, true>;
324 template <
class R,
class A1>
325 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1)) {
326 return &SqGlobal<R>::template Func1<A1, 1, true>;
329 template <
class R,
class A1>
330 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1)) {
331 return &SqGlobal<R&>::template Func1<A1, 1, true>;
335 template <
class R,
class A1,
class A2>
336 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2)) {
337 return &SqGlobal<R>::template Func2<A1, A2, 1, true>;
340 template <
class R,
class A1,
class A2>
341 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2)) {
342 return &SqGlobal<R&>::template Func2<A1, A2, 1, true>;
346 template <
class R,
class A1,
class A2,
class A3>
347 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3)) {
348 return &SqGlobal<R>::template Func3<A1, A2, A3, 1, true>;
351 template <
class R,
class A1,
class A2,
class A3>
352 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3)) {
353 return &SqGlobal<R&>::template Func3<A1, A2, A3, 1, true>;
357 template <
class R,
class A1,
class A2,
class A3,
class A4>
358 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4)) {
359 return &SqGlobal<R>::template Func4<A1, A2, A3, A4, 1, true>;
362 template <
class R,
class A1,
class A2,
class A3,
class A4>
363 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4)) {
364 return &SqGlobal<R&>::template Func4<A1, A2, A3, A4, 1, true>;
368 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
369 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5)) {
370 return &SqGlobal<R>::template Func5<A1, A2, A3, A4, A5, 1, true>;
373 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
374 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5)) {
375 return &SqGlobal<R&>::template Func5<A1, A2, A3, A4, A5, 1, true>;
379 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
380 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6)) {
381 return &SqGlobal<R>::template Func6<A1, A2, A3, A4, A5, A6, 1, true>;
384 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
385 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6)) {
386 return &SqGlobal<R&>::template Func6<A1, A2, A3, A4, A5, A6, 1, true>;
390 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
391 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7)) {
392 return &SqGlobal<R>::template Func7<A1, A2, A3, A4, A5, A6, A7, 1, true>;
395 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
396 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7)) {
397 return &SqGlobal<R&>::template Func7<A1, A2, A3, A4, A5, A6, A7, 1, true>;
401 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
402 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8)) {
403 return &SqGlobal<R>::template Func8<A1, A2, A3, A4, A5, A6, A7, A8, 1, true>;
406 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
407 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8)) {
408 return &SqGlobal<R&>::template Func8<A1, A2, A3, A4, A5, A6, A7, A8, 1, true>;
412 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
413 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)) {
414 return &SqGlobal<R>::template Func9<A1, A2, A3, A4, A5, A6, A7, A8, A9, 1, true>;
417 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
418 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)) {
419 return &SqGlobal<R&>::template Func9<A1, A2, A3, A4, A5, A6, A7, A8, A9, 1, true>;
423 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
424 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)) {
425 return &SqGlobal<R>::template Func10<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, 1, true>;
428 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
429 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)) {
430 return &SqGlobal<R&>::template Func10<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, 1, true>;
434 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
435 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)) {
436 return &SqGlobal<R>::template Func11<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, 1, true>;
439 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
440 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)) {
441 return &SqGlobal<R&>::template Func11<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, 1, true>;
445 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
446 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)) {
447 return &SqGlobal<R>::template Func12<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, 1, true>;
450 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
451 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)) {
452 return &SqGlobal<R&>::template Func12<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, 1, true>;
456 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
457 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)) {
458 return &SqGlobal<R>::template Func13<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, 1, true>;
461 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
462 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)) {
463 return &SqGlobal<R&>::template Func13<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, 1, true>;
467 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
468 SQFUNCTION SqMemberGlobalOverloadedFunc(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)) {
469 return &SqGlobal<R>::template Func14<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, 1, true>;
472 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
473 SQFUNCTION SqMemberGlobalOverloadedFunc(R & (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)) {
474 return &SqGlobal<R&>::template Func14<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, 1, true>;
483 template <
class C,
class R>
484 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)()) {
485 return &SqMember<C, R>::template Func0<true>;
488 template <
class C,
class R>
489 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)()
const) {
490 return &SqMember<C, R>::template Func0C<true>;
493 template <
class C,
class R>
494 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)()) {
495 return &SqMember<C, R&>::template Func0<true>;
497 template <
class C,
class R>
498 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)()
const) {
499 return &SqMember<C, R&>::template Func0C<true>;
503 template <
class C,
class R,
class A1>
504 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1)) {
505 return &SqMember<C, R>::template Func1<A1, true>;
508 template <
class C,
class R,
class A1>
509 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1)
const) {
510 return &SqMember<C, R>::template Func1C<A1, true>;
513 template <
class C,
class R,
class A1>
514 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1)) {
515 return &SqMember<C, R&>::template Func1<A1, true>;
518 template <
class C,
class R,
class A1>
519 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1)
const) {
520 return &SqMember<C, R&>::template Func1C<A1, true>;
524 template <
class C,
class R,
class A1,
class A2>
525 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2)) {
526 return &SqMember<C, R>::template Func2<A1, A2, true>;
529 template <
class C,
class R,
class A1,
class A2>
530 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2)
const) {
531 return &SqMember<C, R>::template Func2C<A1, A2, true>;
534 template <
class C,
class R,
class A1,
class A2>
535 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2)) {
536 return &SqMember<C, R&>::template Func2<A1, A2, true>;
539 template <
class C,
class R,
class A1,
class A2>
540 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2)
const) {
541 return &SqMember<C, R&>::template Func2C<A1, A2, true>;
545 template <
class C,
class R,
class A1,
class A2,
class A3>
546 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3)) {
547 return &SqMember<C, R>::template Func3<A1, A2, A3, true>;
550 template <
class C,
class R,
class A1,
class A2,
class A3>
551 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3)
const) {
552 return &SqMember<C, R>::template Func3C<A1, A2, A3, true>;
554 template <
class C,
class R,
class A1,
class A2,
class A3>
555 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3)) {
556 return &SqMember<C, R&>::template Func3<A1, A2, A3, true>;
559 template <
class C,
class R,
class A1,
class A2,
class A3>
560 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3)
const) {
561 return &SqMember<C, R&>::template Func3C<A1, A2, A3, true>;
565 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4>
566 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4)) {
567 return &SqMember<C, R>::template Func4<A1, A2, A3, A4, true>;
570 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4>
571 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4)
const) {
572 return &SqMember<C, R>::template Func4C<A1, A2, A3, A4, true>;
575 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4>
576 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4)) {
577 return &SqMember<C, R&>::template Func4<A1, A2, A3, A4, true>;
580 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4>
581 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4)
const) {
582 return &SqMember<C, R&>::template Func4C<A1, A2, A3, A4, true>;
586 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
587 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5)) {
588 return &SqMember<C, R>::template Func5<A1, A2, A3, A4, A5, true>;
591 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
592 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5)
const) {
593 return &SqMember<C, R>::template Func5C<A1, A2, A3, A4, A5, true>;
596 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
597 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5)) {
598 return &SqMember<C, R&>::template Func5<A1, A2, A3, A4, A5, true>;
601 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
602 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5)
const) {
603 return &SqMember<C, R&>::template Func5C<A1, A2, A3, A4, A5, true>;
607 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
608 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6)) {
609 return &SqMember<C, R>::template Func6<A1, A2, A3, A4, A5, A6, true>;
612 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
613 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6)
const) {
614 return &SqMember<C, R>::template Func6C<A1, A2, A3, A4, A5, A6, true>;
617 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
618 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6)) {
619 return &SqMember<C, R&>::template Func6<A1, A2, A3, A4, A5, A6, true>;
622 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
623 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6)
const) {
624 return &SqMember<C, R&>::template Func6C<A1, A2, A3, A4, A5, A6, true>;
628 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
629 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7)) {
630 return &SqMember<C, R>::template Func7<A1, A2, A3, A4, A5, A6, A7, true>;
633 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
634 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7)
const) {
635 return &SqMember<C, R>::template Func7C<A1, A2, A3, A4, A5, A6, A7, true>;
638 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
639 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7)) {
640 return &SqMember<C, R&>::template Func7<A1, A2, A3, A4, A5, A6, A7, true>;
643 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
644 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7)
const) {
645 return &SqMember<C, R&>::template Func7C<A1, A2, A3, A4, A5, A6, A7, true>;
649 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
650 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8)) {
651 return &SqMember<C, R>::template Func8<A1, A2, A3, A4, A5, A6, A7, A8, true>;
654 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
655 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8)
const) {
656 return &SqMember<C, R>::template Func8C<A1, A2, A3, A4, A5, A6, A7, A8, true>;
659 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
660 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8)) {
661 return &SqMember<C, R&>::template Func8<A1, A2, A3, A4, A5, A6, A7, A8, true>;
664 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
665 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8)
const) {
666 return &SqMember<C, R&>::template Func8C<A1, A2, A3, A4, A5, A6, A7, A8, true>;
670 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
671 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)) {
672 return &SqMember<C, R>::template Func9<A1, A2, A3, A4, A5, A6, A7, A8, A9, true>;
675 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
676 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)
const) {
677 return &SqMember<C, R>::template Func9C<A1, A2, A3, A4, A5, A6, A7, A8, A9, true>;
680 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
681 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)) {
682 return &SqMember<C, R&>::template Func9<A1, A2, A3, A4, A5, A6, A7, A8, A9, true>;
685 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
686 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)
const) {
687 return &SqMember<C, R&>::template Func9C<A1, A2, A3, A4, A5, A6, A7, A8, A9, true>;
691 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
692 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)) {
693 return &SqMember<C, R>::template Func10<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, true>;
696 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
697 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
const) {
698 return &SqMember<C, R>::template Func10C<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, true>;
701 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
702 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)) {
703 return &SqMember<C, R&>::template Func10<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, true>;
706 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
707 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
const) {
708 return &SqMember<C, R&>::template Func10C<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, true>;
712 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
713 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)) {
714 return &SqMember<C, R>::template Func11<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, true>;
717 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
718 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)
const) {
719 return &SqMember<C, R>::template Func11C<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, true>;
722 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
723 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)) {
724 return &SqMember<C, R&>::template Func11<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, true>;
727 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
728 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)
const) {
729 return &SqMember<C, R&>::template Func11C<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, true>;
733 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
734 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)) {
735 return &SqMember<C, R>::template Func12<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, true>;
738 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
739 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)
const) {
740 return &SqMember<C, R>::template Func12C<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, true>;
743 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
744 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)) {
745 return &SqMember<C, R&>::template Func12<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, true>;
748 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
749 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)
const) {
750 return &SqMember<C, R&>::template Func12C<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, true>;
754 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
755 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)) {
756 return &SqMember<C, R>::template Func13<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, true>;
759 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
760 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)
const) {
761 return &SqMember<C, R>::template Func13C<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, true>;
764 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
765 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)) {
766 return &SqMember<C, R&>::template Func13<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, true>;
769 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
770 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)
const) {
771 return &SqMember<C, R&>::template Func13C<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, true>;
776 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
777 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)) {
778 return &SqMember<C, R>::template Func14<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, true>;
781 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
782 inline SQFUNCTION SqMemberOverloadedFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)
const) {
783 return &SqMember<C, R>::template Func14C<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, true>;
785 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
786 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)) {
787 return &SqMember<C, R&>::template Func14<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, true>;
790 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
791 inline SQFUNCTION SqMemberOverloadedFunc(R & (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)
const) {
792 return &SqMember<C, R&>::template Func14C<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, true>;
801 inline SQFUNCTION SqOverloadFunc(R (*)) {
802 return &SqOverload<R>::Func;
805 template <
class C,
class R>
806 inline SQFUNCTION SqOverloadFunc(R (C::*)) {
807 return &SqOverload<R>::Func;
810 template <
class C,
class R>
811 inline SQFUNCTION SqOverloadFunc(R (C::*)()
const ) {
812 return &SqOverload<R>::Func;
815 template <
class C,
class R,
class A1>
816 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1)
const ) {
817 return &SqOverload<R>::Func;
820 template <
class C,
class R,
class A1,
class A2>
821 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2)
const ) {
822 return &SqOverload<R>::Func;
825 template <
class C,
class R,
class A1,
class A2,
class A3>
826 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3)
const ) {
827 return &SqOverload<R>::Func;
830 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4>
831 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4)
const ) {
832 return &SqOverload<R>::Func;
835 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
836 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4, A5)
const ) {
837 return &SqOverload<R>::Func;
840 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
841 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4, A5, A6)
const ) {
842 return &SqOverload<R>::Func;
845 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
846 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7)
const ) {
847 return &SqOverload<R>::Func;
850 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
851 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8)
const ) {
852 return &SqOverload<R>::Func;
855 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
856 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)
const ) {
857 return &SqOverload<R>::Func;
860 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
861 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
const ) {
862 return &SqOverload<R>::Func;
865 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
866 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)
const ) {
867 return &SqOverload<R>::Func;
870 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
871 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)
const ) {
872 return &SqOverload<R>::Func;
875 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
876 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)
const ) {
877 return &SqOverload<R>::Func;
880 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
881 inline SQFUNCTION SqOverloadFunc(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)
const ) {
882 return &SqOverload<R>::Func;
892 inline int SqGetArgCount(R (*)()) {
897 template <
class R,
class A1>
898 inline int SqGetArgCount(R (*)(A1)) {
903 template <
class R,
class A1,
class A2>
904 inline int SqGetArgCount(R (*)(A1, A2)) {
909 template <
class R,
class A1,
class A2,
class A3>
910 inline int SqGetArgCount(R (*)(A1, A2, A3)) {
915 template <
class R,
class A1,
class A2,
class A3,
class A4>
916 inline int SqGetArgCount(R (*)(A1, A2, A3, A4)) {
921 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
922 inline int SqGetArgCount(R (*)(A1, A2, A3, A4, A5)) {
927 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
928 inline int SqGetArgCount(R (*)(A1, A2, A3, A4, A5, A6)) {
933 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
934 inline int SqGetArgCount(R (*)(A1, A2, A3, A4, A5, A6, A7)) {
939 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
940 inline int SqGetArgCount(R (*)(A1, A2, A3, A4, A5, A6, A7, A8)) {
945 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
946 inline int SqGetArgCount(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)) {
951 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
952 inline int SqGetArgCount(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)) {
957 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
958 inline int SqGetArgCount(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)) {
963 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
964 inline int SqGetArgCount(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)) {
969 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
970 inline int SqGetArgCount(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)) {
975 template <
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
976 inline int SqGetArgCount(R (*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)) {
986 template <
class C,
class R>
987 inline int SqGetArgCount(R (C::*)()) {
992 template <
class C,
class R,
class A1>
993 inline int SqGetArgCount(R (C::*)(A1)) {
998 template <
class C,
class R,
class A1,
class A2>
999 inline int SqGetArgCount(R (C::*)(A1, A2)) {
1004 template <
class C,
class R,
class A1,
class A2,
class A3>
1005 inline int SqGetArgCount(R (C::*)(A1, A2, A3)) {
1010 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4>
1011 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4)) {
1016 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
1017 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5)) {
1022 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
1023 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6)) {
1028 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
1029 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7)) {
1034 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
1035 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8)) {
1040 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
1041 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)) {
1046 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
1047 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)) {
1052 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
1053 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)) {
1058 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
1059 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)) {
1064 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
1065 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)) {
1070 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
1071 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)) {
1081 template <
class C,
class R>
1082 inline int SqGetArgCount(R (C::*)()
const) {
1087 template <
class C,
class R,
class A1>
1088 inline int SqGetArgCount(R (C::*)(A1)
const) {
1093 template <
class C,
class R,
class A1,
class A2>
1094 inline int SqGetArgCount(R (C::*)(A1, A2)
const) {
1099 template <
class C,
class R,
class A1,
class A2,
class A3>
1100 inline int SqGetArgCount(R (C::*)(A1, A2, A3)
const) {
1105 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4>
1106 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4)
const) {
1111 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5>
1112 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5)
const) {
1117 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6>
1118 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6)
const) {
1123 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7>
1124 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7)
const) {
1129 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8>
1130 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8)
const) {
1135 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9>
1136 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9)
const) {
1141 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10>
1142 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)
const) {
1147 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11>
1148 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)
const) {
1153 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12>
1154 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)
const) {
1159 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13>
1160 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)
const) {
1165 template <
class C,
class R,
class A1,
class A2,
class A3,
class A4,
class A5,
class A6,
class A7,
class A8,
class A9,
class A10,
class A11,
class A12,
class A13,
class A14>
1166 inline int SqGetArgCount(R (C::*)(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)
const) {
static bool IsEnabled()
Definition: sqratUtil.h:244
static Error & Instance()
Definition: sqratUtil.h:134