91#ifndef LASS_GUARDIAN_OF_INCLUSION_UTIL_BIND_H
92#define LASS_GUARDIAN_OF_INCLUSION_UTIL_BIND_H
129#if LASS_COMPILER_TYPE == LASS_COMPILER_TYPE_MSVC
130# pragma warning(push)
131# pragma warning(disable: 4267)
145template <
typename R>
struct BindCallback {
typedef CallbackR0<R> Type; };
146template <>
struct BindCallback<void> {
typedef Callback0 Type; };
151template <
typename R>
class BindDispatcher:
public DispatcherR0<R>
153 bool doIsEquivalent(
const DispatcherR0<R>*)
const override {
return false; }
155template <>
class BindDispatcher<void>:
public impl::Dispatcher0
157 bool doIsEquivalent(
const Dispatcher0*)
const override {
return false; }
167typename impl::BindCallback<R>::Type
170 return typename impl::BindCallback<R>::Type(fun);
175template <
typename R,
typename Obj,
typename ObjPtr>
176typename impl::BindCallback<R>::Type
177bind(R (Obj::*fun)(), ObjPtr obj)
179 return typename impl::BindCallback<R>::Type(obj, fun);
184template <
typename R,
typename Obj,
typename ObjPtr>
185typename impl::BindCallback<R>::Type
186bind(R (Obj::*fun)()
const, ObjPtr obj)
188 return typename impl::BindCallback<R>::Type(obj, fun);
216template <
typename R,
typename Fun,
typename X1>
217class DispatcherBindFun1:
public BindDispatcher<R>
220 DispatcherBindFun1(Fun fun, X1 x1): fun_(fun), x1_(x1) {}
222 R doCall()
const override
226 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
231 typename CallTraits<X1>::TValue x1_;
237template <
typename R,
typename ObjPtr,
typename Fun,
typename X1>
238class DispatcherBindMemFun1:
public BindDispatcher<R>
241 DispatcherBindMemFun1(ObjPtr obj, Fun fun, X1 x1): obj_(obj), fun_(fun), x1_(x1) {}
243 R doCall()
const override
247 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
249 return ((*obj_).*fun_)(x1_);
253 typename CallTraits<X1>::TValue x1_;
260template <
typename R,
typename P1,
typename X1>
261typename impl::BindCallback<R>::Type
262bind(R (*fun)(P1), X1 x1)
264 typedef R (*TFun)(P1);
265 typedef typename impl::BindCallback<R>::Type TCallback;
266 typedef impl::DispatcherBindFun1<R, TFun, X1> TDispatcher;
267 return TCallback(TDispatcher(fun, x1));
272template <
typename R,
typename P1,
typename Obj,
typename ObjPtr,
typename X1>
273typename impl::BindCallback<R>::Type
274bind(R (Obj::*fun)(P1), ObjPtr obj, X1 x1)
276 typedef R (Obj::*TFun)(P1);
277 typedef typename impl::BindCallback<R>::Type TCallback;
278 typedef impl::DispatcherBindMemFun1<R, ObjPtr, TFun, X1> TDispatcher;
279 return TCallback(TDispatcher(obj, fun, x1));
284template <
typename R,
typename P1,
typename Obj,
typename ObjPtr,
typename X1>
285typename impl::BindCallback<R>::Type
286bind(R (Obj::*fun)(P1)
const, ObjPtr obj, X1 x1)
288 typedef R (Obj::*TFun)(P1)
const;
289 typedef typename impl::BindCallback<R>::Type TCallback;
290 typedef impl::DispatcherBindMemFun1<R, ObjPtr, TFun, X1> TDispatcher;
291 return TCallback(TDispatcher(obj, fun, x1));
296template <
typename R,
typename P1,
typename X1>
302 typedef impl::DispatcherBindFun1<R, TFun, X1> TDispatcher;
303 return TCallback(TDispatcher(fun, x1));
308template <
typename P1,
typename X1>
314 typedef impl::DispatcherBindFun1<void, TFun, X1> TDispatcher;
315 return TCallback(TDispatcher(fun, x1));
328template <
typename R,
typename Fun,
typename X1,
typename X2>
329class DispatcherBindFun2:
public BindDispatcher<R>
332 DispatcherBindFun2(Fun fun, X1 x1, X2 x2): fun_(fun), x1_(x1), x2_(x2) {}
334 R doCall()
const override
338 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
340 return fun_(x1_, x2_);
343 typename CallTraits<X1>::TValue x1_;
344 typename CallTraits<X2>::TValue x2_;
350template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2>
351class DispatcherBindMemFun2:
public BindDispatcher<R>
354 DispatcherBindMemFun2(ObjPtr obj, Fun fun, X1 x1, X2 x2): obj_(obj), fun_(fun), x1_(x1), x2_(x2) {}
356 R doCall()
const override
360 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
362 return ((*obj_).*fun_)(x1_, x2_);
366 typename CallTraits<X1>::TValue x1_;
367 typename CallTraits<X2>::TValue x2_;
374template <
typename R,
typename P1,
typename P2,
typename X1,
typename X2>
375typename impl::BindCallback<R>::Type
376bind(R (*fun)(P1, P2), X1 x1, X2 x2)
378 typedef R (*TFun)(P1, P2);
379 typedef typename impl::BindCallback<R>::Type TCallback;
380 typedef impl::DispatcherBindFun2<R, TFun, X1, X2> TDispatcher;
381 return TCallback(TDispatcher(fun, x1, x2));
386template <
typename R,
typename P1,
typename P2,
typename Obj,
typename ObjPtr,
typename X1,
typename X2>
387typename impl::BindCallback<R>::Type
388bind(R (Obj::*fun)(P1, P2), ObjPtr obj, X1 x1, X2 x2)
390 typedef R (Obj::*TFun)(P1, P2);
391 typedef typename impl::BindCallback<R>::Type TCallback;
392 typedef impl::DispatcherBindMemFun2<R, ObjPtr, TFun, X1, X2> TDispatcher;
393 return TCallback(TDispatcher(obj, fun, x1, x2));
398template <
typename R,
typename P1,
typename P2,
typename Obj,
typename ObjPtr,
typename X1,
typename X2>
399typename impl::BindCallback<R>::Type
400bind(R (Obj::*fun)(P1, P2)
const, ObjPtr obj, X1 x1, X2 x2)
402 typedef R (Obj::*TFun)(P1, P2)
const;
403 typedef typename impl::BindCallback<R>::Type TCallback;
404 typedef impl::DispatcherBindMemFun2<R, ObjPtr, TFun, X1, X2> TDispatcher;
405 return TCallback(TDispatcher(obj, fun, x1, x2));
410template <
typename R,
typename P1,
typename P2,
typename X1,
typename X2>
416 typedef impl::DispatcherBindFun2<R, TFun, X1, X2> TDispatcher;
417 return TCallback(TDispatcher(fun, x1, x2));
422template <
typename P1,
typename P2,
typename X1,
typename X2>
428 typedef impl::DispatcherBindFun2<void, TFun, X1, X2> TDispatcher;
429 return TCallback(TDispatcher(fun, x1, x2));
442template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3>
443class DispatcherBindFun3:
public BindDispatcher<R>
446 DispatcherBindFun3(Fun fun, X1 x1, X2 x2, X3 x3): fun_(fun), x1_(x1), x2_(x2), x3_(x3) {}
448 R doCall()
const override
452 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
454 return fun_(x1_, x2_, x3_);
457 typename CallTraits<X1>::TValue x1_;
458 typename CallTraits<X2>::TValue x2_;
459 typename CallTraits<X3>::TValue x3_;
465template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3>
466class DispatcherBindMemFun3:
public BindDispatcher<R>
469 DispatcherBindMemFun3(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3) {}
471 R doCall()
const override
475 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
477 return ((*obj_).*fun_)(x1_, x2_, x3_);
481 typename CallTraits<X1>::TValue x1_;
482 typename CallTraits<X2>::TValue x2_;
483 typename CallTraits<X3>::TValue x3_;
490template <
typename R,
typename P1,
typename P2,
typename P3,
typename X1,
typename X2,
typename X3>
491typename impl::BindCallback<R>::Type
492bind(R (*fun)(P1, P2, P3), X1 x1, X2 x2, X3 x3)
494 typedef R (*TFun)(P1, P2, P3);
495 typedef typename impl::BindCallback<R>::Type TCallback;
496 typedef impl::DispatcherBindFun3<R, TFun, X1, X2, X3> TDispatcher;
497 return TCallback(TDispatcher(fun, x1, x2, x3));
502template <
typename R,
typename P1,
typename P2,
typename P3,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3>
503typename impl::BindCallback<R>::Type
504bind(R (Obj::*fun)(P1, P2, P3), ObjPtr obj, X1 x1, X2 x2, X3 x3)
506 typedef R (Obj::*TFun)(P1, P2, P3);
507 typedef typename impl::BindCallback<R>::Type TCallback;
508 typedef impl::DispatcherBindMemFun3<R, ObjPtr, TFun, X1, X2, X3> TDispatcher;
509 return TCallback(TDispatcher(obj, fun, x1, x2, x3));
514template <
typename R,
typename P1,
typename P2,
typename P3,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3>
515typename impl::BindCallback<R>::Type
516bind(R (Obj::*fun)(P1, P2, P3)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3)
518 typedef R (Obj::*TFun)(P1, P2, P3)
const;
519 typedef typename impl::BindCallback<R>::Type TCallback;
520 typedef impl::DispatcherBindMemFun3<R, ObjPtr, TFun, X1, X2, X3> TDispatcher;
521 return TCallback(TDispatcher(obj, fun, x1, x2, x3));
526template <
typename R,
typename P1,
typename P2,
typename P3,
typename X1,
typename X2,
typename X3>
532 typedef impl::DispatcherBindFun3<R, TFun, X1, X2, X3> TDispatcher;
533 return TCallback(TDispatcher(fun, x1, x2, x3));
538template <
typename P1,
typename P2,
typename P3,
typename X1,
typename X2,
typename X3>
544 typedef impl::DispatcherBindFun3<void, TFun, X1, X2, X3> TDispatcher;
545 return TCallback(TDispatcher(fun, x1, x2, x3));
558template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4>
559class DispatcherBindFun4:
public BindDispatcher<R>
562 DispatcherBindFun4(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4) {}
564 R doCall()
const override
568 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
570 return fun_(x1_, x2_, x3_, x4_);
573 typename CallTraits<X1>::TValue x1_;
574 typename CallTraits<X2>::TValue x2_;
575 typename CallTraits<X3>::TValue x3_;
576 typename CallTraits<X4>::TValue x4_;
582template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4>
583class DispatcherBindMemFun4:
public BindDispatcher<R>
586 DispatcherBindMemFun4(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4) {}
588 R doCall()
const override
592 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
594 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_);
598 typename CallTraits<X1>::TValue x1_;
599 typename CallTraits<X2>::TValue x2_;
600 typename CallTraits<X3>::TValue x3_;
601 typename CallTraits<X4>::TValue x4_;
608template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename X1,
typename X2,
typename X3,
typename X4>
609typename impl::BindCallback<R>::Type
610bind(R (*fun)(P1, P2, P3, P4), X1 x1, X2 x2, X3 x3, X4 x4)
612 typedef R (*TFun)(P1, P2, P3, P4);
613 typedef typename impl::BindCallback<R>::Type TCallback;
614 typedef impl::DispatcherBindFun4<R, TFun, X1, X2, X3, X4> TDispatcher;
615 return TCallback(TDispatcher(fun, x1, x2, x3, x4));
620template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4>
621typename impl::BindCallback<R>::Type
622bind(R (Obj::*fun)(P1, P2, P3, P4), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4)
624 typedef R (Obj::*TFun)(P1, P2, P3, P4);
625 typedef typename impl::BindCallback<R>::Type TCallback;
626 typedef impl::DispatcherBindMemFun4<R, ObjPtr, TFun, X1, X2, X3, X4> TDispatcher;
627 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4));
632template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4>
633typename impl::BindCallback<R>::Type
634bind(R (Obj::*fun)(P1, P2, P3, P4)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4)
636 typedef R (Obj::*TFun)(P1, P2, P3, P4)
const;
637 typedef typename impl::BindCallback<R>::Type TCallback;
638 typedef impl::DispatcherBindMemFun4<R, ObjPtr, TFun, X1, X2, X3, X4> TDispatcher;
639 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4));
644template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename X1,
typename X2,
typename X3,
typename X4>
650 typedef impl::DispatcherBindFun4<R, TFun, X1, X2, X3, X4> TDispatcher;
651 return TCallback(TDispatcher(fun, x1, x2, x3, x4));
656template <
typename P1,
typename P2,
typename P3,
typename P4,
typename X1,
typename X2,
typename X3,
typename X4>
662 typedef impl::DispatcherBindFun4<void, TFun, X1, X2, X3, X4> TDispatcher;
663 return TCallback(TDispatcher(fun, x1, x2, x3, x4));
676template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5>
677class DispatcherBindFun5:
public BindDispatcher<R>
680 DispatcherBindFun5(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5) {}
682 R doCall()
const override
686 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
688 return fun_(x1_, x2_, x3_, x4_, x5_);
691 typename CallTraits<X1>::TValue x1_;
692 typename CallTraits<X2>::TValue x2_;
693 typename CallTraits<X3>::TValue x3_;
694 typename CallTraits<X4>::TValue x4_;
695 typename CallTraits<X5>::TValue x5_;
701template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5>
702class DispatcherBindMemFun5:
public BindDispatcher<R>
705 DispatcherBindMemFun5(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5) {}
707 R doCall()
const override
711 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
713 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_);
717 typename CallTraits<X1>::TValue x1_;
718 typename CallTraits<X2>::TValue x2_;
719 typename CallTraits<X3>::TValue x3_;
720 typename CallTraits<X4>::TValue x4_;
721 typename CallTraits<X5>::TValue x5_;
728template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5>
729typename impl::BindCallback<R>::Type
730bind(R (*fun)(P1, P2, P3, P4, P5), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5)
732 typedef R (*TFun)(P1, P2, P3, P4, P5);
733 typedef typename impl::BindCallback<R>::Type TCallback;
734 typedef impl::DispatcherBindFun5<R, TFun, X1, X2, X3, X4, X5> TDispatcher;
735 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5));
740template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5>
741typename impl::BindCallback<R>::Type
742bind(R (Obj::*fun)(P1, P2, P3, P4, P5), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5)
744 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5);
745 typedef typename impl::BindCallback<R>::Type TCallback;
746 typedef impl::DispatcherBindMemFun5<R, ObjPtr, TFun, X1, X2, X3, X4, X5> TDispatcher;
747 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5));
752template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5>
753typename impl::BindCallback<R>::Type
754bind(R (Obj::*fun)(P1, P2, P3, P4, P5)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5)
756 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5)
const;
757 typedef typename impl::BindCallback<R>::Type TCallback;
758 typedef impl::DispatcherBindMemFun5<R, ObjPtr, TFun, X1, X2, X3, X4, X5> TDispatcher;
759 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5));
764template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5>
766bind(
const CallbackR5<R, P1, P2, P3, P4, P5>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5)
770 typedef impl::DispatcherBindFun5<R, TFun, X1, X2, X3, X4, X5> TDispatcher;
771 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5));
776template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5>
782 typedef impl::DispatcherBindFun5<void, TFun, X1, X2, X3, X4, X5> TDispatcher;
783 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5));
796template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6>
797class DispatcherBindFun6:
public BindDispatcher<R>
800 DispatcherBindFun6(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6) {}
802 R doCall()
const override
806 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
808 return fun_(x1_, x2_, x3_, x4_, x5_, x6_);
811 typename CallTraits<X1>::TValue x1_;
812 typename CallTraits<X2>::TValue x2_;
813 typename CallTraits<X3>::TValue x3_;
814 typename CallTraits<X4>::TValue x4_;
815 typename CallTraits<X5>::TValue x5_;
816 typename CallTraits<X6>::TValue x6_;
822template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6>
823class DispatcherBindMemFun6:
public BindDispatcher<R>
826 DispatcherBindMemFun6(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6) {}
828 R doCall()
const override
832 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
834 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_, x6_);
838 typename CallTraits<X1>::TValue x1_;
839 typename CallTraits<X2>::TValue x2_;
840 typename CallTraits<X3>::TValue x3_;
841 typename CallTraits<X4>::TValue x4_;
842 typename CallTraits<X5>::TValue x5_;
843 typename CallTraits<X6>::TValue x6_;
850template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6>
851typename impl::BindCallback<R>::Type
852bind(R (*fun)(P1, P2, P3, P4, P5, P6), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6)
854 typedef R (*TFun)(P1, P2, P3, P4, P5, P6);
855 typedef typename impl::BindCallback<R>::Type TCallback;
856 typedef impl::DispatcherBindFun6<R, TFun, X1, X2, X3, X4, X5, X6> TDispatcher;
857 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6));
862template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6>
863typename impl::BindCallback<R>::Type
864bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6)
866 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6);
867 typedef typename impl::BindCallback<R>::Type TCallback;
868 typedef impl::DispatcherBindMemFun6<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6> TDispatcher;
869 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6));
874template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6>
875typename impl::BindCallback<R>::Type
876bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6)
878 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6)
const;
879 typedef typename impl::BindCallback<R>::Type TCallback;
880 typedef impl::DispatcherBindMemFun6<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6> TDispatcher;
881 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6));
886template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6>
888bind(
const CallbackR6<R, P1, P2, P3, P4, P5, P6>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6)
892 typedef impl::DispatcherBindFun6<R, TFun, X1, X2, X3, X4, X5, X6> TDispatcher;
893 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6));
898template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6>
900bind(
const Callback6<P1, P2, P3, P4, P5, P6>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6)
904 typedef impl::DispatcherBindFun6<void, TFun, X1, X2, X3, X4, X5, X6> TDispatcher;
905 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6));
918template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7>
919class DispatcherBindFun7:
public BindDispatcher<R>
922 DispatcherBindFun7(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7) {}
924 R doCall()
const override
928 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
930 return fun_(x1_, x2_, x3_, x4_, x5_, x6_, x7_);
933 typename CallTraits<X1>::TValue x1_;
934 typename CallTraits<X2>::TValue x2_;
935 typename CallTraits<X3>::TValue x3_;
936 typename CallTraits<X4>::TValue x4_;
937 typename CallTraits<X5>::TValue x5_;
938 typename CallTraits<X6>::TValue x6_;
939 typename CallTraits<X7>::TValue x7_;
945template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7>
946class DispatcherBindMemFun7:
public BindDispatcher<R>
949 DispatcherBindMemFun7(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7) {}
951 R doCall()
const override
955 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
957 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_, x6_, x7_);
961 typename CallTraits<X1>::TValue x1_;
962 typename CallTraits<X2>::TValue x2_;
963 typename CallTraits<X3>::TValue x3_;
964 typename CallTraits<X4>::TValue x4_;
965 typename CallTraits<X5>::TValue x5_;
966 typename CallTraits<X6>::TValue x6_;
967 typename CallTraits<X7>::TValue x7_;
974template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7>
975typename impl::BindCallback<R>::Type
976bind(R (*fun)(P1, P2, P3, P4, P5, P6, P7), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7)
978 typedef R (*TFun)(P1, P2, P3, P4, P5, P6, P7);
979 typedef typename impl::BindCallback<R>::Type TCallback;
980 typedef impl::DispatcherBindFun7<R, TFun, X1, X2, X3, X4, X5, X6, X7> TDispatcher;
981 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7));
986template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7>
987typename impl::BindCallback<R>::Type
988bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7)
990 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7);
991 typedef typename impl::BindCallback<R>::Type TCallback;
992 typedef impl::DispatcherBindMemFun7<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7> TDispatcher;
993 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7));
998template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7>
999typename impl::BindCallback<R>::Type
1000bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7)
1002 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7)
const;
1003 typedef typename impl::BindCallback<R>::Type TCallback;
1004 typedef impl::DispatcherBindMemFun7<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7> TDispatcher;
1005 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7));
1010template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7>
1012bind(
const CallbackR7<R, P1, P2, P3, P4, P5, P6, P7>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7)
1016 typedef impl::DispatcherBindFun7<R, TFun, X1, X2, X3, X4, X5, X6, X7> TDispatcher;
1017 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7));
1022template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7>
1024bind(
const Callback7<P1, P2, P3, P4, P5, P6, P7>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7)
1028 typedef impl::DispatcherBindFun7<void, TFun, X1, X2, X3, X4, X5, X6, X7> TDispatcher;
1029 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7));
1042template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8>
1043class DispatcherBindFun8:
public BindDispatcher<R>
1046 DispatcherBindFun8(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8) {}
1048 R doCall()
const override
1052 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1054 return fun_(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_);
1057 typename CallTraits<X1>::TValue x1_;
1058 typename CallTraits<X2>::TValue x2_;
1059 typename CallTraits<X3>::TValue x3_;
1060 typename CallTraits<X4>::TValue x4_;
1061 typename CallTraits<X5>::TValue x5_;
1062 typename CallTraits<X6>::TValue x6_;
1063 typename CallTraits<X7>::TValue x7_;
1064 typename CallTraits<X8>::TValue x8_;
1070template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8>
1071class DispatcherBindMemFun8:
public BindDispatcher<R>
1074 DispatcherBindMemFun8(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8) {}
1076 R doCall()
const override
1080 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1082 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_);
1086 typename CallTraits<X1>::TValue x1_;
1087 typename CallTraits<X2>::TValue x2_;
1088 typename CallTraits<X3>::TValue x3_;
1089 typename CallTraits<X4>::TValue x4_;
1090 typename CallTraits<X5>::TValue x5_;
1091 typename CallTraits<X6>::TValue x6_;
1092 typename CallTraits<X7>::TValue x7_;
1093 typename CallTraits<X8>::TValue x8_;
1100template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8>
1101typename impl::BindCallback<R>::Type
1102bind(R (*fun)(P1, P2, P3, P4, P5, P6, P7, P8), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8)
1104 typedef R (*TFun)(P1, P2, P3, P4, P5, P6, P7, P8);
1105 typedef typename impl::BindCallback<R>::Type TCallback;
1106 typedef impl::DispatcherBindFun8<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8> TDispatcher;
1107 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8));
1112template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8>
1113typename impl::BindCallback<R>::Type
1114bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8)
1116 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8);
1117 typedef typename impl::BindCallback<R>::Type TCallback;
1118 typedef impl::DispatcherBindMemFun8<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8> TDispatcher;
1119 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8));
1124template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8>
1125typename impl::BindCallback<R>::Type
1126bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8)
1128 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8)
const;
1129 typedef typename impl::BindCallback<R>::Type TCallback;
1130 typedef impl::DispatcherBindMemFun8<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8> TDispatcher;
1131 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8));
1136template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8>
1138bind(
const CallbackR8<R, P1, P2, P3, P4, P5, P6, P7, P8>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8)
1142 typedef impl::DispatcherBindFun8<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8> TDispatcher;
1143 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8));
1148template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8>
1150bind(
const Callback8<P1, P2, P3, P4, P5, P6, P7, P8>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8)
1154 typedef impl::DispatcherBindFun8<void, TFun, X1, X2, X3, X4, X5, X6, X7, X8> TDispatcher;
1155 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8));
1168template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9>
1169class DispatcherBindFun9:
public BindDispatcher<R>
1172 DispatcherBindFun9(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9) {}
1174 R doCall()
const override
1178 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1180 return fun_(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_);
1183 typename CallTraits<X1>::TValue x1_;
1184 typename CallTraits<X2>::TValue x2_;
1185 typename CallTraits<X3>::TValue x3_;
1186 typename CallTraits<X4>::TValue x4_;
1187 typename CallTraits<X5>::TValue x5_;
1188 typename CallTraits<X6>::TValue x6_;
1189 typename CallTraits<X7>::TValue x7_;
1190 typename CallTraits<X8>::TValue x8_;
1191 typename CallTraits<X9>::TValue x9_;
1197template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9>
1198class DispatcherBindMemFun9:
public BindDispatcher<R>
1201 DispatcherBindMemFun9(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9) {}
1203 R doCall()
const override
1207 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1209 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_);
1213 typename CallTraits<X1>::TValue x1_;
1214 typename CallTraits<X2>::TValue x2_;
1215 typename CallTraits<X3>::TValue x3_;
1216 typename CallTraits<X4>::TValue x4_;
1217 typename CallTraits<X5>::TValue x5_;
1218 typename CallTraits<X6>::TValue x6_;
1219 typename CallTraits<X7>::TValue x7_;
1220 typename CallTraits<X8>::TValue x8_;
1221 typename CallTraits<X9>::TValue x9_;
1228template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9>
1229typename impl::BindCallback<R>::Type
1230bind(R (*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9)
1232 typedef R (*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9);
1233 typedef typename impl::BindCallback<R>::Type TCallback;
1234 typedef impl::DispatcherBindFun9<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9> TDispatcher;
1235 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9));
1240template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9>
1241typename impl::BindCallback<R>::Type
1242bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9)
1244 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9);
1245 typedef typename impl::BindCallback<R>::Type TCallback;
1246 typedef impl::DispatcherBindMemFun9<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9> TDispatcher;
1247 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9));
1252template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9>
1253typename impl::BindCallback<R>::Type
1254bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9)
1256 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9)
const;
1257 typedef typename impl::BindCallback<R>::Type TCallback;
1258 typedef impl::DispatcherBindMemFun9<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9> TDispatcher;
1259 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9));
1264template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9>
1266bind(
const CallbackR9<R, P1, P2, P3, P4, P5, P6, P7, P8, P9>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9)
1270 typedef impl::DispatcherBindFun9<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9> TDispatcher;
1271 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9));
1276template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9>
1278bind(
const Callback9<P1, P2, P3, P4, P5, P6, P7, P8, P9>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9)
1282 typedef impl::DispatcherBindFun9<void, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9> TDispatcher;
1283 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9));
1296template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10>
1297class DispatcherBindFun10:
public BindDispatcher<R>
1300 DispatcherBindFun10(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10) {}
1302 R doCall()
const override
1306 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1308 return fun_(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_);
1311 typename CallTraits<X1>::TValue x1_;
1312 typename CallTraits<X2>::TValue x2_;
1313 typename CallTraits<X3>::TValue x3_;
1314 typename CallTraits<X4>::TValue x4_;
1315 typename CallTraits<X5>::TValue x5_;
1316 typename CallTraits<X6>::TValue x6_;
1317 typename CallTraits<X7>::TValue x7_;
1318 typename CallTraits<X8>::TValue x8_;
1319 typename CallTraits<X9>::TValue x9_;
1320 typename CallTraits<X10>::TValue x10_;
1326template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10>
1327class DispatcherBindMemFun10:
public BindDispatcher<R>
1330 DispatcherBindMemFun10(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10) {}
1332 R doCall()
const override
1336 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1338 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_);
1342 typename CallTraits<X1>::TValue x1_;
1343 typename CallTraits<X2>::TValue x2_;
1344 typename CallTraits<X3>::TValue x3_;
1345 typename CallTraits<X4>::TValue x4_;
1346 typename CallTraits<X5>::TValue x5_;
1347 typename CallTraits<X6>::TValue x6_;
1348 typename CallTraits<X7>::TValue x7_;
1349 typename CallTraits<X8>::TValue x8_;
1350 typename CallTraits<X9>::TValue x9_;
1351 typename CallTraits<X10>::TValue x10_;
1358template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10>
1359typename impl::BindCallback<R>::Type
1360bind(R (*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10)
1362 typedef R (*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10);
1363 typedef typename impl::BindCallback<R>::Type TCallback;
1364 typedef impl::DispatcherBindFun10<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10> TDispatcher;
1365 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10));
1370template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10>
1371typename impl::BindCallback<R>::Type
1372bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10)
1374 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10);
1375 typedef typename impl::BindCallback<R>::Type TCallback;
1376 typedef impl::DispatcherBindMemFun10<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10> TDispatcher;
1377 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10));
1382template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10>
1383typename impl::BindCallback<R>::Type
1384bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10)
1386 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)
const;
1387 typedef typename impl::BindCallback<R>::Type TCallback;
1388 typedef impl::DispatcherBindMemFun10<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10> TDispatcher;
1389 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10));
1394template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10>
1396bind(
const CallbackR10<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10)
1398 typedef CallbackR10<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> TFun;
1400 typedef impl::DispatcherBindFun10<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10> TDispatcher;
1401 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10));
1406template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10>
1408bind(
const Callback10<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10)
1412 typedef impl::DispatcherBindFun10<void, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10> TDispatcher;
1413 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10));
1426template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11>
1427class DispatcherBindFun11:
public BindDispatcher<R>
1430 DispatcherBindFun11(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10), x11_(x11) {}
1432 R doCall()
const override
1436 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1438 return fun_(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_, x11_);
1441 typename CallTraits<X1>::TValue x1_;
1442 typename CallTraits<X2>::TValue x2_;
1443 typename CallTraits<X3>::TValue x3_;
1444 typename CallTraits<X4>::TValue x4_;
1445 typename CallTraits<X5>::TValue x5_;
1446 typename CallTraits<X6>::TValue x6_;
1447 typename CallTraits<X7>::TValue x7_;
1448 typename CallTraits<X8>::TValue x8_;
1449 typename CallTraits<X9>::TValue x9_;
1450 typename CallTraits<X10>::TValue x10_;
1451 typename CallTraits<X11>::TValue x11_;
1457template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11>
1458class DispatcherBindMemFun11:
public BindDispatcher<R>
1461 DispatcherBindMemFun11(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10), x11_(x11) {}
1463 R doCall()
const override
1467 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1469 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_, x11_);
1473 typename CallTraits<X1>::TValue x1_;
1474 typename CallTraits<X2>::TValue x2_;
1475 typename CallTraits<X3>::TValue x3_;
1476 typename CallTraits<X4>::TValue x4_;
1477 typename CallTraits<X5>::TValue x5_;
1478 typename CallTraits<X6>::TValue x6_;
1479 typename CallTraits<X7>::TValue x7_;
1480 typename CallTraits<X8>::TValue x8_;
1481 typename CallTraits<X9>::TValue x9_;
1482 typename CallTraits<X10>::TValue x10_;
1483 typename CallTraits<X11>::TValue x11_;
1490template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11>
1491typename impl::BindCallback<R>::Type
1492bind(R (*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11)
1494 typedef R (*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11);
1495 typedef typename impl::BindCallback<R>::Type TCallback;
1496 typedef impl::DispatcherBindFun11<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11> TDispatcher;
1497 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11));
1502template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11>
1503typename impl::BindCallback<R>::Type
1504bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11)
1506 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11);
1507 typedef typename impl::BindCallback<R>::Type TCallback;
1508 typedef impl::DispatcherBindMemFun11<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11> TDispatcher;
1509 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11));
1514template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11>
1515typename impl::BindCallback<R>::Type
1516bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11)
1518 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)
const;
1519 typedef typename impl::BindCallback<R>::Type TCallback;
1520 typedef impl::DispatcherBindMemFun11<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11> TDispatcher;
1521 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11));
1526template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11>
1528bind(
const CallbackR11<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11)
1530 typedef CallbackR11<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> TFun;
1532 typedef impl::DispatcherBindFun11<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11> TDispatcher;
1533 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11));
1538template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11>
1540bind(
const Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11)
1542 typedef Callback11<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> TFun;
1544 typedef impl::DispatcherBindFun11<void, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11> TDispatcher;
1545 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11));
1558template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12>
1559class DispatcherBindFun12:
public BindDispatcher<R>
1562 DispatcherBindFun12(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10), x11_(x11), x12_(x12) {}
1564 R doCall()
const override
1568 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1570 return fun_(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_, x11_, x12_);
1573 typename CallTraits<X1>::TValue x1_;
1574 typename CallTraits<X2>::TValue x2_;
1575 typename CallTraits<X3>::TValue x3_;
1576 typename CallTraits<X4>::TValue x4_;
1577 typename CallTraits<X5>::TValue x5_;
1578 typename CallTraits<X6>::TValue x6_;
1579 typename CallTraits<X7>::TValue x7_;
1580 typename CallTraits<X8>::TValue x8_;
1581 typename CallTraits<X9>::TValue x9_;
1582 typename CallTraits<X10>::TValue x10_;
1583 typename CallTraits<X11>::TValue x11_;
1584 typename CallTraits<X12>::TValue x12_;
1590template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12>
1591class DispatcherBindMemFun12:
public BindDispatcher<R>
1594 DispatcherBindMemFun12(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10), x11_(x11), x12_(x12) {}
1596 R doCall()
const override
1600 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1602 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_, x11_, x12_);
1606 typename CallTraits<X1>::TValue x1_;
1607 typename CallTraits<X2>::TValue x2_;
1608 typename CallTraits<X3>::TValue x3_;
1609 typename CallTraits<X4>::TValue x4_;
1610 typename CallTraits<X5>::TValue x5_;
1611 typename CallTraits<X6>::TValue x6_;
1612 typename CallTraits<X7>::TValue x7_;
1613 typename CallTraits<X8>::TValue x8_;
1614 typename CallTraits<X9>::TValue x9_;
1615 typename CallTraits<X10>::TValue x10_;
1616 typename CallTraits<X11>::TValue x11_;
1617 typename CallTraits<X12>::TValue x12_;
1624template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12>
1625typename impl::BindCallback<R>::Type
1626bind(R (*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12)
1628 typedef R (*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12);
1629 typedef typename impl::BindCallback<R>::Type TCallback;
1630 typedef impl::DispatcherBindFun12<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12> TDispatcher;
1631 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12));
1636template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12>
1637typename impl::BindCallback<R>::Type
1638bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12)
1640 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12);
1641 typedef typename impl::BindCallback<R>::Type TCallback;
1642 typedef impl::DispatcherBindMemFun12<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12> TDispatcher;
1643 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12));
1648template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12>
1649typename impl::BindCallback<R>::Type
1650bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12)
1652 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)
const;
1653 typedef typename impl::BindCallback<R>::Type TCallback;
1654 typedef impl::DispatcherBindMemFun12<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12> TDispatcher;
1655 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12));
1660template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12>
1662bind(
const CallbackR12<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12)
1664 typedef CallbackR12<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> TFun;
1666 typedef impl::DispatcherBindFun12<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12> TDispatcher;
1667 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12));
1672template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12>
1674bind(
const Callback12<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12)
1676 typedef Callback12<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> TFun;
1678 typedef impl::DispatcherBindFun12<void, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12> TDispatcher;
1679 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12));
1692template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13>
1693class DispatcherBindFun13:
public BindDispatcher<R>
1696 DispatcherBindFun13(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10), x11_(x11), x12_(x12), x13_(x13) {}
1698 R doCall()
const override
1702 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1704 return fun_(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_, x11_, x12_, x13_);
1707 typename CallTraits<X1>::TValue x1_;
1708 typename CallTraits<X2>::TValue x2_;
1709 typename CallTraits<X3>::TValue x3_;
1710 typename CallTraits<X4>::TValue x4_;
1711 typename CallTraits<X5>::TValue x5_;
1712 typename CallTraits<X6>::TValue x6_;
1713 typename CallTraits<X7>::TValue x7_;
1714 typename CallTraits<X8>::TValue x8_;
1715 typename CallTraits<X9>::TValue x9_;
1716 typename CallTraits<X10>::TValue x10_;
1717 typename CallTraits<X11>::TValue x11_;
1718 typename CallTraits<X12>::TValue x12_;
1719 typename CallTraits<X13>::TValue x13_;
1725template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13>
1726class DispatcherBindMemFun13:
public BindDispatcher<R>
1729 DispatcherBindMemFun13(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10), x11_(x11), x12_(x12), x13_(x13) {}
1731 R doCall()
const override
1735 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1737 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_, x11_, x12_, x13_);
1741 typename CallTraits<X1>::TValue x1_;
1742 typename CallTraits<X2>::TValue x2_;
1743 typename CallTraits<X3>::TValue x3_;
1744 typename CallTraits<X4>::TValue x4_;
1745 typename CallTraits<X5>::TValue x5_;
1746 typename CallTraits<X6>::TValue x6_;
1747 typename CallTraits<X7>::TValue x7_;
1748 typename CallTraits<X8>::TValue x8_;
1749 typename CallTraits<X9>::TValue x9_;
1750 typename CallTraits<X10>::TValue x10_;
1751 typename CallTraits<X11>::TValue x11_;
1752 typename CallTraits<X12>::TValue x12_;
1753 typename CallTraits<X13>::TValue x13_;
1760template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13>
1761typename impl::BindCallback<R>::Type
1762bind(R (*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13)
1764 typedef R (*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13);
1765 typedef typename impl::BindCallback<R>::Type TCallback;
1766 typedef impl::DispatcherBindFun13<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13> TDispatcher;
1767 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13));
1772template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13>
1773typename impl::BindCallback<R>::Type
1774bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13)
1776 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13);
1777 typedef typename impl::BindCallback<R>::Type TCallback;
1778 typedef impl::DispatcherBindMemFun13<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13> TDispatcher;
1779 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13));
1784template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13>
1785typename impl::BindCallback<R>::Type
1786bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13)
1788 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)
const;
1789 typedef typename impl::BindCallback<R>::Type TCallback;
1790 typedef impl::DispatcherBindMemFun13<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13> TDispatcher;
1791 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13));
1796template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13>
1798bind(
const CallbackR13<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13)
1800 typedef CallbackR13<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> TFun;
1802 typedef impl::DispatcherBindFun13<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13> TDispatcher;
1803 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13));
1808template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13>
1810bind(
const Callback13<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13)
1812 typedef Callback13<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> TFun;
1814 typedef impl::DispatcherBindFun13<void, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13> TDispatcher;
1815 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13));
1828template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14>
1829class DispatcherBindFun14:
public BindDispatcher<R>
1832 DispatcherBindFun14(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10), x11_(x11), x12_(x12), x13_(x13), x14_(x14) {}
1834 R doCall()
const override
1838 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1840 return fun_(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_, x11_, x12_, x13_, x14_);
1843 typename CallTraits<X1>::TValue x1_;
1844 typename CallTraits<X2>::TValue x2_;
1845 typename CallTraits<X3>::TValue x3_;
1846 typename CallTraits<X4>::TValue x4_;
1847 typename CallTraits<X5>::TValue x5_;
1848 typename CallTraits<X6>::TValue x6_;
1849 typename CallTraits<X7>::TValue x7_;
1850 typename CallTraits<X8>::TValue x8_;
1851 typename CallTraits<X9>::TValue x9_;
1852 typename CallTraits<X10>::TValue x10_;
1853 typename CallTraits<X11>::TValue x11_;
1854 typename CallTraits<X12>::TValue x12_;
1855 typename CallTraits<X13>::TValue x13_;
1856 typename CallTraits<X14>::TValue x14_;
1862template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14>
1863class DispatcherBindMemFun14:
public BindDispatcher<R>
1866 DispatcherBindMemFun14(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10), x11_(x11), x12_(x12), x13_(x13), x14_(x14) {}
1868 R doCall()
const override
1872 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1874 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_, x11_, x12_, x13_, x14_);
1878 typename CallTraits<X1>::TValue x1_;
1879 typename CallTraits<X2>::TValue x2_;
1880 typename CallTraits<X3>::TValue x3_;
1881 typename CallTraits<X4>::TValue x4_;
1882 typename CallTraits<X5>::TValue x5_;
1883 typename CallTraits<X6>::TValue x6_;
1884 typename CallTraits<X7>::TValue x7_;
1885 typename CallTraits<X8>::TValue x8_;
1886 typename CallTraits<X9>::TValue x9_;
1887 typename CallTraits<X10>::TValue x10_;
1888 typename CallTraits<X11>::TValue x11_;
1889 typename CallTraits<X12>::TValue x12_;
1890 typename CallTraits<X13>::TValue x13_;
1891 typename CallTraits<X14>::TValue x14_;
1898template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14>
1899typename impl::BindCallback<R>::Type
1900bind(R (*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14)
1902 typedef R (*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14);
1903 typedef typename impl::BindCallback<R>::Type TCallback;
1904 typedef impl::DispatcherBindFun14<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14> TDispatcher;
1905 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14));
1910template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14>
1911typename impl::BindCallback<R>::Type
1912bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14)
1914 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14);
1915 typedef typename impl::BindCallback<R>::Type TCallback;
1916 typedef impl::DispatcherBindMemFun14<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14> TDispatcher;
1917 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14));
1922template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14>
1923typename impl::BindCallback<R>::Type
1924bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14)
1926 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)
const;
1927 typedef typename impl::BindCallback<R>::Type TCallback;
1928 typedef impl::DispatcherBindMemFun14<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14> TDispatcher;
1929 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14));
1934template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14>
1936bind(
const CallbackR14<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14)
1938 typedef CallbackR14<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> TFun;
1940 typedef impl::DispatcherBindFun14<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14> TDispatcher;
1941 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14));
1946template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14>
1948bind(
const Callback14<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14)
1950 typedef Callback14<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> TFun;
1952 typedef impl::DispatcherBindFun14<void, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14> TDispatcher;
1953 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14));
1966template <
typename R,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14,
typename X15>
1967class DispatcherBindFun15:
public BindDispatcher<R>
1970 DispatcherBindFun15(Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14, X15 x15): fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10), x11_(x11), x12_(x12), x13_(x13), x14_(x14), x15_(x15) {}
1972 R doCall()
const override
1976 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
1978 return fun_(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_, x11_, x12_, x13_, x14_, x15_);
1981 typename CallTraits<X1>::TValue x1_;
1982 typename CallTraits<X2>::TValue x2_;
1983 typename CallTraits<X3>::TValue x3_;
1984 typename CallTraits<X4>::TValue x4_;
1985 typename CallTraits<X5>::TValue x5_;
1986 typename CallTraits<X6>::TValue x6_;
1987 typename CallTraits<X7>::TValue x7_;
1988 typename CallTraits<X8>::TValue x8_;
1989 typename CallTraits<X9>::TValue x9_;
1990 typename CallTraits<X10>::TValue x10_;
1991 typename CallTraits<X11>::TValue x11_;
1992 typename CallTraits<X12>::TValue x12_;
1993 typename CallTraits<X13>::TValue x13_;
1994 typename CallTraits<X14>::TValue x14_;
1995 typename CallTraits<X15>::TValue x15_;
2001template <
typename R,
typename ObjPtr,
typename Fun,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14,
typename X15>
2002class DispatcherBindMemFun15:
public BindDispatcher<R>
2005 DispatcherBindMemFun15(ObjPtr obj, Fun fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14, X15 x15): obj_(obj), fun_(fun), x1_(x1), x2_(x2), x3_(x3), x4_(x4), x5_(x5), x6_(x6), x7_(x7), x8_(x8), x9_(x9), x10_(x10), x11_(x11), x12_(x12), x13_(x13), x14_(x14), x15_(x15) {}
2007 R doCall()
const override
2011 LASS_THROW_EX(EmptyCallback,
"You've tried to call an empty CallbackR0. Can't return a value.");
2013 return ((*obj_).*fun_)(x1_, x2_, x3_, x4_, x5_, x6_, x7_, x8_, x9_, x10_, x11_, x12_, x13_, x14_, x15_);
2017 typename CallTraits<X1>::TValue x1_;
2018 typename CallTraits<X2>::TValue x2_;
2019 typename CallTraits<X3>::TValue x3_;
2020 typename CallTraits<X4>::TValue x4_;
2021 typename CallTraits<X5>::TValue x5_;
2022 typename CallTraits<X6>::TValue x6_;
2023 typename CallTraits<X7>::TValue x7_;
2024 typename CallTraits<X8>::TValue x8_;
2025 typename CallTraits<X9>::TValue x9_;
2026 typename CallTraits<X10>::TValue x10_;
2027 typename CallTraits<X11>::TValue x11_;
2028 typename CallTraits<X12>::TValue x12_;
2029 typename CallTraits<X13>::TValue x13_;
2030 typename CallTraits<X14>::TValue x14_;
2031 typename CallTraits<X15>::TValue x15_;
2038template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14,
typename X15>
2039typename impl::BindCallback<R>::Type
2040bind(R (*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15), X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14, X15 x15)
2042 typedef R (*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15);
2043 typedef typename impl::BindCallback<R>::Type TCallback;
2044 typedef impl::DispatcherBindFun15<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15> TDispatcher;
2045 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15));
2050template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14,
typename X15>
2051typename impl::BindCallback<R>::Type
2052bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15), ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14, X15 x15)
2054 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15);
2055 typedef typename impl::BindCallback<R>::Type TCallback;
2056 typedef impl::DispatcherBindMemFun15<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15> TDispatcher;
2057 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15));
2062template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15,
typename Obj,
typename ObjPtr,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14,
typename X15>
2063typename impl::BindCallback<R>::Type
2064bind(R (Obj::*fun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)
const, ObjPtr obj, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14, X15 x15)
2066 typedef R (Obj::*TFun)(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)
const;
2067 typedef typename impl::BindCallback<R>::Type TCallback;
2068 typedef impl::DispatcherBindMemFun15<R, ObjPtr, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15> TDispatcher;
2069 return TCallback(TDispatcher(obj, fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15));
2074template <
typename R,
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14,
typename X15>
2076bind(
const CallbackR15<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14, X15 x15)
2078 typedef CallbackR15<R, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> TFun;
2080 typedef impl::DispatcherBindFun15<R, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15> TDispatcher;
2081 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15));
2086template <
typename P1,
typename P2,
typename P3,
typename P4,
typename P5,
typename P6,
typename P7,
typename P8,
typename P9,
typename P10,
typename P11,
typename P12,
typename P13,
typename P14,
typename P15,
typename X1,
typename X2,
typename X3,
typename X4,
typename X5,
typename X6,
typename X7,
typename X8,
typename X9,
typename X10,
typename X11,
typename X12,
typename X13,
typename X14,
typename X15>
2088bind(
const Callback15<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15>& fun, X1 x1, X2 x2, X3 x3, X4 x4, X5 x5, X6 x6, X7 x7, X8 x8, X9 x9, X10 x10, X11 x11, X12 x12, X13 x13, X14 x14, X15 x15)
2090 typedef Callback15<P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> TFun;
2092 typedef impl::DispatcherBindFun15<void, TFun, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15> TDispatcher;
2093 return TCallback(TDispatcher(fun, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15));
2102#if LASS_COMPILER_TYPE == LASS_COMPILER_TYPE_MSVC
2103# pragma warning(pop)
callback with 0 parameter(s) and without returnvalue.
callback with 10 parameter(s) but without returnvalue.
callback with 11 parameter(s) but without returnvalue.
callback with 12 parameter(s) but without returnvalue.
callback with 13 parameter(s) but without returnvalue.
callback with 14 parameter(s) but without returnvalue.
callback with 15 parameter(s) but without returnvalue.
callback with 1 parameter(s) but without returnvalue.
callback with 2 parameter(s) but without returnvalue.
callback with 3 parameter(s) but without returnvalue.
callback with 4 parameter(s) but without returnvalue.
callback with 5 parameter(s) but without returnvalue.
callback with 6 parameter(s) but without returnvalue.
callback with 7 parameter(s) but without returnvalue.
callback with 8 parameter(s) but without returnvalue.
callback with 9 parameter(s) but without returnvalue.
callback with 0 parameters but with returnvalue.
callback with 10 parameter10 and with returnvalue.
callback with 11 parameter11 and with returnvalue.
callback with 12 parameter12 and with returnvalue.
callback with 13 parameter13 and with returnvalue.
callback with 14 parameter14 and with returnvalue.
callback with 15 parameter15 and with returnvalue.
callback with 1 parameter1 and with returnvalue.
callback with 2 parameter2 and with returnvalue.
callback with 3 parameter3 and with returnvalue.
callback with 4 parameter4 and with returnvalue.
callback with 5 parameter5 and with returnvalue.
callback with 6 parameter6 and with returnvalue.
callback with 7 parameter7 and with returnvalue.
callback with 8 parameter8 and with returnvalue.
callback with 9 parameter9 and with returnvalue.
abstract base class of all dispatchers for lass::util::CallbackR0.
general utility, debug facilities, ...
Library for Assembled Shared Sources.