OSDN Git Service

tuple.hpp: 無駄なコード削減しよう
authorMyun2 <myun2@nwhite.info>
Mon, 12 Sep 2011 17:54:11 +0000 (02:54 +0900)
committerMyun2 <myun2@nwhite.info>
Mon, 12 Sep 2011 17:54:11 +0000 (02:54 +0900)
roast/include/roast/tp/tuple/tuple.hpp

index 18b9275..cfde870 100644 (file)
@@ -143,18 +143,20 @@ namespace roast
                        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>::type
-                       _Base, _NestType;
+                       _Base; //, _NestType;
                typedef 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>
                        _This, _ThisType;
        public:
+               typedef _Base _NestType;
+       public:
                /// Constructors //////////////////////////////////////////////////////////////////
 
                tuple(){}
                tuple(const T0 &value_in) : _Base(value_in) {}
-               //tuple(const T0 &value_in, const _NestType &next_in) : _Base(value_in, next_in) {}
+               tuple(const T0 &value_in, const typename _Base::_Next &next_in) : _Base(value_in, next_in) {}
                tuple(const _NestType &t) : _Base(t) {}
                tuple(const _ThisType &t) : _Base(t) {}
        };
@@ -172,26 +174,21 @@ namespace roast
        typename tuple<T0> make_tuple(T0 t0)
        {
                typedef tuple<T0> _TupleType;
-               typedef typename tp::_tuple::tuple_to_nest_type<T0>::type _NestType;
-               return _TupleType(_NestType(t0));
+               return _TupleType(t0);
        }
 
        template <typename T0, typename T1>
        typename tuple<T0,T1> make_tuple(T0 t0, T1 t1)
        {
                typedef tuple<T0,T1> _TupleType;
-               typedef typename tp::_tuple::tuple_to_nest_type<T0,T1>::type _NestType;
-               return _TupleType(_NestType(t0,make_tuple(t1)));
-       //      return tp::_tuple::tuple_to_nest_type<T1,T2>::type(t1,make_tuple(t2));
+               return _TupleType(t0,make_tuple(t1));
        }
 
        template <typename T0, typename T1, typename T2>
        typename tuple<T0,T1,T2> make_tuple(T0 t0, T1 t1, T2 t2)
        {
                typedef tuple<T0,T1,T2> _TupleType;
-               typedef typename tp::_tuple::tuple_to_nest_type<T0,T1,T2>::type _NestType;
-               return _TupleType(_NestType(t0,make_tuple(t1,t2)));
-       //      return tp::_tuple::tuple_to_nest_type<T1,T2>::type(t1,make_tuple(t2));
+               return _TupleType(t0,make_tuple(t1,t2));
        }
 
        //////////////////////////////////////////////////////////////////////////////////