diff --git a/src/lib/meta/tuple.hpp b/src/lib/meta/tuple.hpp index ff03cfff6..622246327 100644 --- a/src/lib/meta/tuple.hpp +++ b/src/lib/meta/tuple.hpp @@ -373,6 +373,75 @@ namespace typelist{ } + template< typename T1 + , typename T2 + , typename T3 + , typename T4 + , typename T5 + , typename T6 + > + inline + Tuple< Types > + make ( T1 a1 =T1() + , T2 a2 =T2() + , T3 a3 =T3() + , T4 a4 =T4() + , T5 a5 =T5() + , T6 a6 =T6() + ) + { + return Tuple > (a1,a2,a3,a4,a5,a6); + } + + + template< typename T1 + , typename T2 + , typename T3 + , typename T4 + , typename T5 + , typename T6 + , typename T7 + > + inline + Tuple< Types > + make ( T1 a1 =T1() + , T2 a2 =T2() + , T3 a3 =T3() + , T4 a4 =T4() + , T5 a5 =T5() + , T6 a6 =T6() + , T7 a7 =T7() + ) + { + return Tuple > (a1,a2,a3,a4,a5,a6,a7); + } + + + template< typename T1 + , typename T2 + , typename T3 + , typename T4 + , typename T5 + , typename T6 + , typename T7 + , typename T8 + > + inline + Tuple< Types > + make ( T1 a1 =T1() + , T2 a2 =T2() + , T3 a3 =T3() + , T4 a4 =T4() + , T5 a5 =T5() + , T6 a6 =T6() + , T7 a7 =T7() + , T8 a8 =T8() + ) + { + return Tuple > (a1,a2,a3,a4,a5,a6,a7,a8); + } + + template< typename T1 , typename T2 , typename T3 diff --git a/src/proc/control/argument-tuple-accept.hpp b/src/proc/control/argument-tuple-accept.hpp index 2c847d8d5..faadebc89 100644 --- a/src/proc/control/argument-tuple-accept.hpp +++ b/src/proc/control/argument-tuple-accept.hpp @@ -138,6 +138,106 @@ namespace control { }; + template< class TAR, class BA + , typename T1 + , typename T2 + , typename T3 + , typename T4 + , typename T5 + > //________________________________ + struct AcceptArgs > ///< Accept binding for 5 Arguments + : BA + { + void + bind (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5) + { + static_cast (this) -> bindArg (tuple::make (a1,a2,a3,a4,a5)); + } + }; + + + template< class TAR, class BA + , typename T1 + , typename T2 + , typename T3 + , typename T4 + , typename T5 + , typename T6 + > //________________________________ + struct AcceptArgs > ///< Accept binding for 6 Arguments + : BA + { + void + bind (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6) + { + static_cast (this) -> bindArg (tuple::make (a1,a2,a3,a4,a5,a6)); + } + }; + + + template< class TAR, class BA + , typename T1 + , typename T2 + , typename T3 + , typename T4 + , typename T5 + , typename T6 + , typename T7 + > //________________________________ + struct AcceptArgs > ///< Accept binding for 7 Arguments + : BA + { + void + bind (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7) + { + static_cast (this) -> bindArg (tuple::make (a1,a2,a3,a4,a5,a6,a7)); + } + }; + + + template< class TAR, class BA + , typename T1 + , typename T2 + , typename T3 + , typename T4 + , typename T5 + , typename T6 + , typename T7 + , typename T8 + > //________________________________ + struct AcceptArgs > ///< Accept binding for 8 Arguments + : BA + { + void + bind (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8) + { + static_cast (this) -> bindArg (tuple::make (a1,a2,a3,a4,a5,a6,a7,a8)); + } + }; + + + template< class TAR, class BA + , typename T1 + , typename T2 + , typename T3 + , typename T4 + , typename T5 + , typename T6 + , typename T7 + , typename T8 + , typename T9 + > //________________________________ + struct AcceptArgs > ///< Accept binding for 9 Arguments + : BA + { + void + bind (T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8, T9 a9) + { + static_cast (this) -> bindArg (tuple::make (a1,a2,a3,a4,a5,a6,a7,a8,a9)); + } + }; + + template struct _Type