OSDN Git Service

tp/tuple/tuple.hpp: make_tuple()増強
authorMyun2 <myun2@nwhite.info>
Wed, 12 Oct 2011 15:16:33 +0000 (00:16 +0900)
committerMyun2 <myun2@nwhite.info>
Wed, 12 Oct 2011 15:16:33 +0000 (00:16 +0900)
roast/include/roast/tp/tuple/tuple.hpp

index ecc24d0..df6e3e8 100644 (file)
@@ -162,32 +162,100 @@ namespace roast
        };
 
        //////////////////////////////////////////////////////////////////////////////////
-
+       //
        //      make_tuple
-/*     template <typename T1>
-       typename tp::_tuple::tuple_to_nest_type<T1>::type make_tuple2(T1 t1)
-       {
-               return tp::_tuple::tuple_to_nest_type<T1>::type(t1);
-       }*/
+       //
 
+       //      make_tuple (1 params)
        template <typename T0>
        typename tuple<T0> make_tuple(T0 t0)
        {
                return tuple<T0>(t0);
        }
 
+       //      make_tuple (2 params)
        template <typename T0, typename T1>
        typename tuple<T0,T1> make_tuple(T0 t0, T1 t1)
        {
                return tuple<T0,T1>(t0,make_tuple(t1));
        }
 
+       //      make_tuple (3 params)
        template <typename T0, typename T1, typename T2>
        typename tuple<T0,T1,T2> make_tuple(T0 t0, T1 t1, T2 t2)
        {
                return tuple<T0,T1,T2>(t0,make_tuple(t1,t2));
        }
 
+       //      make_tuple (4 params)
+       template <typename T0, typename T1, typename T2, typename T3>
+       typename tuple<T0,T1,T2,T3> make_tuple(T0 t0, T1 t1, T2 t2, T3 t3)
+       {
+               return tuple<T0,T1,T2,T3>(t0,make_tuple(t1,t2,t3));
+       }
+
+       //      make_tuple (5 params)
+       template <typename T0, typename T1, typename T2, typename T3, typename T4>
+       typename tuple<T0,T1,T2,T3,T4> make_tuple(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4)
+       {
+               return tuple<T0,T1,T2,T3,T4>(t0,make_tuple(t1,t2,t3,t4));
+       }
+
+       //      make_tuple (6 params)
+       template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
+       typename tuple<T0,T1,T2,T3,T4,T5> make_tuple(T0 t0,T1 t1,T2 t2,T3 t3,T4 t4,T5 t5)
+       {
+               return tuple<T0,T1,T2,T3,T4,T5>(t0,make_tuple(t1,t2,t3,t4,t5));
+       }
+
+       //      make_tuple (7 params)
+       template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
+       typename tuple<T0,T1,T2,T3,T4,T5,T6> make_tuple(T0 t0,T1 t1,T2 t2,T3 t3,T4 t4,T5 t5,T6 t6)
+       {
+               return tuple<T0,T1,T2,T3,T4,T5,T6>(t0,make_tuple(t1,t2,t3,t4,t5,t6));
+       }
+
+       //      make_tuple (8 params)
+       template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
+       typename tuple<T0,T1,T2,T3,T4,T5,T6,T7> make_tuple(T0 t0,T1 t1,T2 t2,T3 t3,T4 t4,T5 t5,T6 t6,T7 t7)
+       {
+               return tuple<T0,T1,T2,T3,T4,T5,T6,T7>(t0,make_tuple(t1,t2,t3,t4,t5,t6,t7));
+       }
+
+       //      make_tuple (9 params)
+       template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
+       typename tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8> make_tuple(T0 t0,T1 t1,T2 t2,T3 t3,T4 t4,T5 t5,T6 t6,T7 t7,T8 t8)
+       {
+               return tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8>(t0,make_tuple(t1,t2,t3,t4,t5,t6,t7,t8));
+       }
+
+       //      make_tuple (10 params)
+       template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
+       typename tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9> make_tuple(T0 t0,T1 t1,T2 t2,T3 t3,T4 t4,T5 t5,T6 t6,T7 t7,T8 t8,T9 t9)
+       {
+               return tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9>(t0,make_tuple(t1,t2,t3,t4,t5,t6,t7,t8,t9));
+       }
+
+       //      make_tuple (11 params)
+       template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
+       typename tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>
+               make_tuple(T0 t0,T1 t1,T2 t2,T3 t3,T4 t4,T5 t5,T6 t6,T7 t7,T8 t8,T9 t9,T10 t10)
+       {
+               return tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>(t0,make_tuple(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10));
+       }
+
+       /*template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10,
+               typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18,   typename T19, typename T20,
+               typename T21, typename T22, typename T23, typename T24, typename T25, typename T26, typename T27, typename T28, typename T29, typename T30, typename T31, typename T32>
+       typename tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>
+               make_tuple(T0 t0,T1 t1,T2 t2,T3 t3,T4 t4,T5 t5,T6 t6,T7 t7,T8 t8,T9 t9,T10 t10,T11 t11,T12 t12,T13 t13,T14 t14,T15 t15,T16 t16,
+                       T17 t17,T18 t18,T19 t19,T20 t20,T21 t21,T22 t22,T23 t23,T24 t24,T25 t25,T26 t26,T27 t27,T28 t28,T29 t29,T30 t30,T31 t31,T32 t32)
+       {
+               return tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>
+                       (t0,make_tuple(t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,t21,t22,t23,t24,t25,t26,t27,t28,t29,t30,t31,t32));
+       }*/
+
+
        //////////////////////////////////////////////////////////////////////////////////
 }