list<> iteration bug fix

[SVN r18975]
This commit is contained in:
Aleksey Gurtovoy
2003-07-08 05:40:14 +00:00
parent b8a4930412
commit d49590c199
9 changed files with 174 additions and 177 deletions

View File

@@ -21,7 +21,7 @@ struct list<
> >
: list0< > : list0< >
{ {
typedef list0< > type; typedef list0< >::type type;
}; };
template< template<
@@ -32,18 +32,16 @@ struct list<
> >
: list1<T0> : list1<T0>
{ {
typedef list1<T0> type; typedef typename list1<T0>::type type;
}; };
template< template<
typename T0, typename T1 typename T0, typename T1
> >
struct list< struct list< T0,T1,void_,void_,void_,void_,void_,void_,void_,void_ >
T0, T1, void_, void_, void_, void_, void_, void_, void_, void_
>
: list2< T0,T1 > : list2< T0,T1 >
{ {
typedef list2< T0,T1 > type; typedef typename list2< T0,T1 >::type type;
}; };
template< template<
@@ -52,7 +50,7 @@ template<
struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ >
: list3< T0,T1,T2 > : list3< T0,T1,T2 >
{ {
typedef list3< T0,T1,T2 > type; typedef typename list3< T0,T1,T2 >::type type;
}; };
template< template<
@@ -61,7 +59,7 @@ template<
struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ >
: list4< T0,T1,T2,T3 > : list4< T0,T1,T2,T3 >
{ {
typedef list4< T0,T1,T2,T3 > type; typedef typename list4< T0,T1,T2,T3 >::type type;
}; };
template< template<
@@ -70,7 +68,7 @@ template<
struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ >
: list5< T0,T1,T2,T3,T4 > : list5< T0,T1,T2,T3,T4 >
{ {
typedef list5< T0,T1,T2,T3,T4 > type; typedef typename list5< T0,T1,T2,T3,T4 >::type type;
}; };
template< template<
@@ -80,7 +78,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ >
: list6< T0,T1,T2,T3,T4,T5 > : list6< T0,T1,T2,T3,T4,T5 >
{ {
typedef list6< T0,T1,T2,T3,T4,T5 > type; typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
}; };
template< template<
@@ -90,7 +88,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ >
: list7< T0,T1,T2,T3,T4,T5,T6 > : list7< T0,T1,T2,T3,T4,T5,T6 >
{ {
typedef list7< T0,T1,T2,T3,T4,T5,T6 > type; typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
}; };
template< template<
@@ -100,7 +98,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ >
: list8< T0,T1,T2,T3,T4,T5,T6,T7 > : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
{ {
typedef list8< T0,T1,T2,T3,T4,T5,T6,T7 > type; typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
}; };
template< template<
@@ -110,10 +108,11 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ >
: list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
{ {
typedef list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
}; };
// primary template (not a specialization!) // primary template (not a specialization!)
template< template<
typename T0, typename T1, typename T2, typename T3, typename T4 typename T0, typename T1, typename T2, typename T3, typename T4
, typename T5, typename T6, typename T7, typename T8, typename T9 , typename T5, typename T6, typename T7, typename T8, typename T9

View File

@@ -21,7 +21,7 @@ struct list<
> >
: list0< > : list0< >
{ {
typedef list0< > type; typedef list0< >::type type;
}; };
template< template<
@@ -32,18 +32,16 @@ struct list<
> >
: list1<T0> : list1<T0>
{ {
typedef list1<T0> type; typedef typename list1<T0>::type type;
}; };
template< template<
typename T0, typename T1 typename T0, typename T1
> >
struct list< struct list< T0,T1,void_,void_,void_,void_,void_,void_,void_,void_ >
T0, T1, void_, void_, void_, void_, void_, void_, void_, void_
>
: list2< T0,T1 > : list2< T0,T1 >
{ {
typedef list2< T0,T1 > type; typedef typename list2< T0,T1 >::type type;
}; };
template< template<
@@ -52,7 +50,7 @@ template<
struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ >
: list3< T0,T1,T2 > : list3< T0,T1,T2 >
{ {
typedef list3< T0,T1,T2 > type; typedef typename list3< T0,T1,T2 >::type type;
}; };
template< template<
@@ -61,7 +59,7 @@ template<
struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ >
: list4< T0,T1,T2,T3 > : list4< T0,T1,T2,T3 >
{ {
typedef list4< T0,T1,T2,T3 > type; typedef typename list4< T0,T1,T2,T3 >::type type;
}; };
template< template<
@@ -70,7 +68,7 @@ template<
struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ >
: list5< T0,T1,T2,T3,T4 > : list5< T0,T1,T2,T3,T4 >
{ {
typedef list5< T0,T1,T2,T3,T4 > type; typedef typename list5< T0,T1,T2,T3,T4 >::type type;
}; };
template< template<
@@ -80,7 +78,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ >
: list6< T0,T1,T2,T3,T4,T5 > : list6< T0,T1,T2,T3,T4,T5 >
{ {
typedef list6< T0,T1,T2,T3,T4,T5 > type; typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
}; };
template< template<
@@ -90,7 +88,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ >
: list7< T0,T1,T2,T3,T4,T5,T6 > : list7< T0,T1,T2,T3,T4,T5,T6 >
{ {
typedef list7< T0,T1,T2,T3,T4,T5,T6 > type; typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
}; };
template< template<
@@ -100,7 +98,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ >
: list8< T0,T1,T2,T3,T4,T5,T6,T7 > : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
{ {
typedef list8< T0,T1,T2,T3,T4,T5,T6,T7 > type; typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
}; };
template< template<
@@ -110,10 +108,11 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ >
: list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
{ {
typedef list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
}; };
// primary template (not a specialization!) // primary template (not a specialization!)
template< template<
typename T0, typename T1, typename T2, typename T3, typename T4 typename T0, typename T1, typename T2, typename T3, typename T4
, typename T5, typename T6, typename T7, typename T8, typename T9 , typename T5, typename T6, typename T7, typename T8, typename T9

View File

@@ -21,7 +21,7 @@ struct list<
> >
: list0< > : list0< >
{ {
typedef list0< > type; typedef list0< >::type type;
}; };
template< template<
@@ -32,18 +32,16 @@ struct list<
> >
: list1<T0> : list1<T0>
{ {
typedef list1<T0> type; typedef typename list1<T0>::type type;
}; };
template< template<
typename T0, typename T1 typename T0, typename T1
> >
struct list< struct list< T0,T1,void_,void_,void_,void_,void_,void_,void_,void_ >
T0, T1, void_, void_, void_, void_, void_, void_, void_, void_
>
: list2< T0,T1 > : list2< T0,T1 >
{ {
typedef list2< T0,T1 > type; typedef typename list2< T0,T1 >::type type;
}; };
template< template<
@@ -52,7 +50,7 @@ template<
struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ >
: list3< T0,T1,T2 > : list3< T0,T1,T2 >
{ {
typedef list3< T0,T1,T2 > type; typedef typename list3< T0,T1,T2 >::type type;
}; };
template< template<
@@ -61,7 +59,7 @@ template<
struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ >
: list4< T0,T1,T2,T3 > : list4< T0,T1,T2,T3 >
{ {
typedef list4< T0,T1,T2,T3 > type; typedef typename list4< T0,T1,T2,T3 >::type type;
}; };
template< template<
@@ -70,7 +68,7 @@ template<
struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ >
: list5< T0,T1,T2,T3,T4 > : list5< T0,T1,T2,T3,T4 >
{ {
typedef list5< T0,T1,T2,T3,T4 > type; typedef typename list5< T0,T1,T2,T3,T4 >::type type;
}; };
template< template<
@@ -80,7 +78,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ >
: list6< T0,T1,T2,T3,T4,T5 > : list6< T0,T1,T2,T3,T4,T5 >
{ {
typedef list6< T0,T1,T2,T3,T4,T5 > type; typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
}; };
template< template<
@@ -90,7 +88,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ >
: list7< T0,T1,T2,T3,T4,T5,T6 > : list7< T0,T1,T2,T3,T4,T5,T6 >
{ {
typedef list7< T0,T1,T2,T3,T4,T5,T6 > type; typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
}; };
template< template<
@@ -100,7 +98,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ >
: list8< T0,T1,T2,T3,T4,T5,T6,T7 > : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
{ {
typedef list8< T0,T1,T2,T3,T4,T5,T6,T7 > type; typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
}; };
template< template<
@@ -110,10 +108,11 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ >
: list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
{ {
typedef list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
}; };
// primary template (not a specialization!) // primary template (not a specialization!)
template< template<
typename T0, typename T1, typename T2, typename T3, typename T4 typename T0, typename T1, typename T2, typename T3, typename T4
, typename T5, typename T6, typename T7, typename T8, typename T9 , typename T5, typename T6, typename T7, typename T8, typename T9

View File

@@ -3,7 +3,6 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
namespace aux { namespace aux {
template< nttp_int N > struct list_impl_chooser; template< nttp_int N > struct list_impl_chooser;
} }
@@ -19,9 +18,9 @@ struct list_impl_chooser<0>
> >
struct result_ struct result_
{ {
typedef list0< typedef typename list0<
> type; >::type type;
}; };
}; };
@@ -38,9 +37,9 @@ struct list_impl_chooser<1>
> >
struct result_ struct result_
{ {
typedef list1< typedef typename list1<
T0 T0
> type; >::type type;
}; };
}; };
@@ -57,9 +56,9 @@ struct list_impl_chooser<2>
> >
struct result_ struct result_
{ {
typedef list2< typedef typename list2<
T0, T1 T0, T1
> type; >::type type;
}; };
}; };
@@ -76,9 +75,9 @@ struct list_impl_chooser<3>
> >
struct result_ struct result_
{ {
typedef list3< typedef typename list3<
T0, T1, T2 T0, T1, T2
> type; >::type type;
}; };
}; };
@@ -95,9 +94,9 @@ struct list_impl_chooser<4>
> >
struct result_ struct result_
{ {
typedef list4< typedef typename list4<
T0, T1, T2, T3 T0, T1, T2, T3
> type; >::type type;
}; };
}; };
@@ -114,9 +113,9 @@ struct list_impl_chooser<5>
> >
struct result_ struct result_
{ {
typedef list5< typedef typename list5<
T0, T1, T2, T3, T4 T0, T1, T2, T3, T4
> type; >::type type;
}; };
}; };
@@ -133,9 +132,9 @@ struct list_impl_chooser<6>
> >
struct result_ struct result_
{ {
typedef list6< typedef typename list6<
T0, T1, T2, T3, T4, T5 T0, T1, T2, T3, T4, T5
> type; >::type type;
}; };
}; };
@@ -152,9 +151,9 @@ struct list_impl_chooser<7>
> >
struct result_ struct result_
{ {
typedef list7< typedef typename list7<
T0, T1, T2, T3, T4, T5, T6 T0, T1, T2, T3, T4, T5, T6
> type; >::type type;
}; };
}; };
@@ -171,9 +170,9 @@ struct list_impl_chooser<8>
> >
struct result_ struct result_
{ {
typedef list8< typedef typename list8<
T0, T1, T2, T3, T4, T5, T6, T7 T0, T1, T2, T3, T4, T5, T6, T7
> type; >::type type;
}; };
}; };
@@ -190,9 +189,9 @@ struct list_impl_chooser<9>
> >
struct result_ struct result_
{ {
typedef list9< typedef typename list9<
T0, T1, T2, T3, T4, T5, T6, T7, T8 T0, T1, T2, T3, T4, T5, T6, T7, T8
> type; >::type type;
}; };
}; };
@@ -209,9 +208,9 @@ struct list_impl_chooser<10>
> >
struct result_ struct result_
{ {
typedef list10< typedef typename list10<
T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
> type; >::type type;
}; };
}; };
@@ -244,6 +243,7 @@ struct list_count_args
+ is_list_arg<T7>::value + is_list_arg<T8>::value + is_list_arg<T7>::value + is_list_arg<T8>::value
+ is_list_arg<T9>::value + is_list_arg<T10>::value + is_list_arg<T9>::value + is_list_arg<T10>::value
}; };
}; };
template< template<

View File

@@ -3,7 +3,6 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
namespace aux { namespace aux {
template< int N > struct list_impl_chooser; template< int N > struct list_impl_chooser;
} }
@@ -19,9 +18,9 @@ struct list_impl_chooser<0>
> >
struct result_ struct result_
{ {
typedef list0< typedef typename list0<
> type; >::type type;
}; };
}; };
@@ -38,9 +37,9 @@ struct list_impl_chooser<1>
> >
struct result_ struct result_
{ {
typedef list1< typedef typename list1<
T0 T0
> type; >::type type;
}; };
}; };
@@ -57,9 +56,9 @@ struct list_impl_chooser<2>
> >
struct result_ struct result_
{ {
typedef list2< typedef typename list2<
T0, T1 T0, T1
> type; >::type type;
}; };
}; };
@@ -76,9 +75,9 @@ struct list_impl_chooser<3>
> >
struct result_ struct result_
{ {
typedef list3< typedef typename list3<
T0, T1, T2 T0, T1, T2
> type; >::type type;
}; };
}; };
@@ -95,9 +94,9 @@ struct list_impl_chooser<4>
> >
struct result_ struct result_
{ {
typedef list4< typedef typename list4<
T0, T1, T2, T3 T0, T1, T2, T3
> type; >::type type;
}; };
}; };
@@ -114,9 +113,9 @@ struct list_impl_chooser<5>
> >
struct result_ struct result_
{ {
typedef list5< typedef typename list5<
T0, T1, T2, T3, T4 T0, T1, T2, T3, T4
> type; >::type type;
}; };
}; };
@@ -133,9 +132,9 @@ struct list_impl_chooser<6>
> >
struct result_ struct result_
{ {
typedef list6< typedef typename list6<
T0, T1, T2, T3, T4, T5 T0, T1, T2, T3, T4, T5
> type; >::type type;
}; };
}; };
@@ -152,9 +151,9 @@ struct list_impl_chooser<7>
> >
struct result_ struct result_
{ {
typedef list7< typedef typename list7<
T0, T1, T2, T3, T4, T5, T6 T0, T1, T2, T3, T4, T5, T6
> type; >::type type;
}; };
}; };
@@ -171,9 +170,9 @@ struct list_impl_chooser<8>
> >
struct result_ struct result_
{ {
typedef list8< typedef typename list8<
T0, T1, T2, T3, T4, T5, T6, T7 T0, T1, T2, T3, T4, T5, T6, T7
> type; >::type type;
}; };
}; };
@@ -190,9 +189,9 @@ struct list_impl_chooser<9>
> >
struct result_ struct result_
{ {
typedef list9< typedef typename list9<
T0, T1, T2, T3, T4, T5, T6, T7, T8 T0, T1, T2, T3, T4, T5, T6, T7, T8
> type; >::type type;
}; };
}; };
@@ -209,9 +208,9 @@ struct list_impl_chooser<10>
> >
struct result_ struct result_
{ {
typedef list10< typedef typename list10<
T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
> type; >::type type;
}; };
}; };
@@ -244,6 +243,7 @@ struct list_count_args
+ is_list_arg<T7>::value + is_list_arg<T8>::value + is_list_arg<T7>::value + is_list_arg<T8>::value
+ is_list_arg<T9>::value + is_list_arg<T10>::value + is_list_arg<T9>::value + is_list_arg<T10>::value
}; };
}; };
template< template<

View File

@@ -21,7 +21,7 @@ struct list<
> >
: list0< > : list0< >
{ {
typedef list0< > type; typedef list0< >::type type;
}; };
template< template<
@@ -32,18 +32,16 @@ struct list<
> >
: list1<T0> : list1<T0>
{ {
typedef list1<T0> type; typedef typename list1<T0>::type type;
}; };
template< template<
typename T0, typename T1 typename T0, typename T1
> >
struct list< struct list< T0,T1,void_,void_,void_,void_,void_,void_,void_,void_ >
T0, T1, void_, void_, void_, void_, void_, void_, void_, void_
>
: list2< T0,T1 > : list2< T0,T1 >
{ {
typedef list2< T0,T1 > type; typedef typename list2< T0,T1 >::type type;
}; };
template< template<
@@ -52,7 +50,7 @@ template<
struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ >
: list3< T0,T1,T2 > : list3< T0,T1,T2 >
{ {
typedef list3< T0,T1,T2 > type; typedef typename list3< T0,T1,T2 >::type type;
}; };
template< template<
@@ -61,7 +59,7 @@ template<
struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ >
: list4< T0,T1,T2,T3 > : list4< T0,T1,T2,T3 >
{ {
typedef list4< T0,T1,T2,T3 > type; typedef typename list4< T0,T1,T2,T3 >::type type;
}; };
template< template<
@@ -70,7 +68,7 @@ template<
struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ >
: list5< T0,T1,T2,T3,T4 > : list5< T0,T1,T2,T3,T4 >
{ {
typedef list5< T0,T1,T2,T3,T4 > type; typedef typename list5< T0,T1,T2,T3,T4 >::type type;
}; };
template< template<
@@ -80,7 +78,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ >
: list6< T0,T1,T2,T3,T4,T5 > : list6< T0,T1,T2,T3,T4,T5 >
{ {
typedef list6< T0,T1,T2,T3,T4,T5 > type; typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
}; };
template< template<
@@ -90,7 +88,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ >
: list7< T0,T1,T2,T3,T4,T5,T6 > : list7< T0,T1,T2,T3,T4,T5,T6 >
{ {
typedef list7< T0,T1,T2,T3,T4,T5,T6 > type; typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
}; };
template< template<
@@ -100,7 +98,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ >
: list8< T0,T1,T2,T3,T4,T5,T6,T7 > : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
{ {
typedef list8< T0,T1,T2,T3,T4,T5,T6,T7 > type; typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
}; };
template< template<
@@ -110,10 +108,11 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ >
: list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
{ {
typedef list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
}; };
// primary template (not a specialization!) // primary template (not a specialization!)
template< template<
typename T0, typename T1, typename T2, typename T3, typename T4 typename T0, typename T1, typename T2, typename T3, typename T4
, typename T5, typename T6, typename T7, typename T8, typename T9 , typename T5, typename T6, typename T7, typename T8, typename T9

View File

@@ -3,7 +3,6 @@
namespace boost { namespace boost {
namespace mpl { namespace mpl {
namespace aux { namespace aux {
template< int N > struct list_impl_chooser; template< int N > struct list_impl_chooser;
} }
@@ -19,9 +18,9 @@ struct list_impl_chooser<0>
> >
struct result_ struct result_
{ {
typedef list0< typedef typename list0<
> type; >::type type;
}; };
}; };
@@ -38,9 +37,9 @@ struct list_impl_chooser<1>
> >
struct result_ struct result_
{ {
typedef list1< typedef typename list1<
T0 T0
> type; >::type type;
}; };
}; };
@@ -57,9 +56,9 @@ struct list_impl_chooser<2>
> >
struct result_ struct result_
{ {
typedef list2< typedef typename list2<
T0, T1 T0, T1
> type; >::type type;
}; };
}; };
@@ -76,9 +75,9 @@ struct list_impl_chooser<3>
> >
struct result_ struct result_
{ {
typedef list3< typedef typename list3<
T0, T1, T2 T0, T1, T2
> type; >::type type;
}; };
}; };
@@ -95,9 +94,9 @@ struct list_impl_chooser<4>
> >
struct result_ struct result_
{ {
typedef list4< typedef typename list4<
T0, T1, T2, T3 T0, T1, T2, T3
> type; >::type type;
}; };
}; };
@@ -114,9 +113,9 @@ struct list_impl_chooser<5>
> >
struct result_ struct result_
{ {
typedef list5< typedef typename list5<
T0, T1, T2, T3, T4 T0, T1, T2, T3, T4
> type; >::type type;
}; };
}; };
@@ -133,9 +132,9 @@ struct list_impl_chooser<6>
> >
struct result_ struct result_
{ {
typedef list6< typedef typename list6<
T0, T1, T2, T3, T4, T5 T0, T1, T2, T3, T4, T5
> type; >::type type;
}; };
}; };
@@ -152,9 +151,9 @@ struct list_impl_chooser<7>
> >
struct result_ struct result_
{ {
typedef list7< typedef typename list7<
T0, T1, T2, T3, T4, T5, T6 T0, T1, T2, T3, T4, T5, T6
> type; >::type type;
}; };
}; };
@@ -171,9 +170,9 @@ struct list_impl_chooser<8>
> >
struct result_ struct result_
{ {
typedef list8< typedef typename list8<
T0, T1, T2, T3, T4, T5, T6, T7 T0, T1, T2, T3, T4, T5, T6, T7
> type; >::type type;
}; };
}; };
@@ -190,9 +189,9 @@ struct list_impl_chooser<9>
> >
struct result_ struct result_
{ {
typedef list9< typedef typename list9<
T0, T1, T2, T3, T4, T5, T6, T7, T8 T0, T1, T2, T3, T4, T5, T6, T7, T8
> type; >::type type;
}; };
}; };
@@ -209,9 +208,9 @@ struct list_impl_chooser<10>
> >
struct result_ struct result_
{ {
typedef list10< typedef typename list10<
T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
> type; >::type type;
}; };
}; };
@@ -244,6 +243,7 @@ struct list_count_args
+ is_list_arg<T7>::value + is_list_arg<T8>::value + is_list_arg<T7>::value + is_list_arg<T8>::value
+ is_list_arg<T9>::value + is_list_arg<T10>::value + is_list_arg<T9>::value + is_list_arg<T10>::value
; ;
}; };
template< template<

View File

@@ -21,7 +21,7 @@ struct list<
> >
: list0< > : list0< >
{ {
typedef list0< > type; typedef list0< >::type type;
}; };
template< template<
@@ -32,7 +32,7 @@ struct list<
> >
: list1<T0> : list1<T0>
{ {
typedef list1<T0> type; typedef typename list1<T0>::type type;
}; };
template< template<
@@ -41,7 +41,7 @@ template<
struct list< T0,T1,void_,void_,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,void_,void_,void_,void_,void_,void_,void_,void_ >
: list2< T0,T1 > : list2< T0,T1 >
{ {
typedef list2< T0,T1 > type; typedef typename list2< T0,T1 >::type type;
}; };
template< template<
@@ -50,7 +50,7 @@ template<
struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ >
: list3< T0,T1,T2 > : list3< T0,T1,T2 >
{ {
typedef list3< T0,T1,T2 > type; typedef typename list3< T0,T1,T2 >::type type;
}; };
template< template<
@@ -59,7 +59,7 @@ template<
struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ >
: list4< T0,T1,T2,T3 > : list4< T0,T1,T2,T3 >
{ {
typedef list4< T0,T1,T2,T3 > type; typedef typename list4< T0,T1,T2,T3 >::type type;
}; };
template< template<
@@ -68,7 +68,7 @@ template<
struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ >
: list5< T0,T1,T2,T3,T4 > : list5< T0,T1,T2,T3,T4 >
{ {
typedef list5< T0,T1,T2,T3,T4 > type; typedef typename list5< T0,T1,T2,T3,T4 >::type type;
}; };
template< template<
@@ -78,7 +78,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ >
: list6< T0,T1,T2,T3,T4,T5 > : list6< T0,T1,T2,T3,T4,T5 >
{ {
typedef list6< T0,T1,T2,T3,T4,T5 > type; typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
}; };
template< template<
@@ -88,7 +88,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ >
: list7< T0,T1,T2,T3,T4,T5,T6 > : list7< T0,T1,T2,T3,T4,T5,T6 >
{ {
typedef list7< T0,T1,T2,T3,T4,T5,T6 > type; typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
}; };
template< template<
@@ -98,7 +98,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ >
: list8< T0,T1,T2,T3,T4,T5,T6,T7 > : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
{ {
typedef list8< T0,T1,T2,T3,T4,T5,T6,T7 > type; typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
}; };
template< template<
@@ -108,7 +108,7 @@ template<
struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ >
: list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
{ {
typedef list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
}; };
// primary template (not a specialization!) // primary template (not a specialization!)

View File

@@ -57,6 +57,7 @@
# include "boost/preprocessor/enum.hpp" # include "boost/preprocessor/enum.hpp"
# include "boost/preprocessor/repeat.hpp" # include "boost/preprocessor/repeat.hpp"
# include "boost/preprocessor/comma_if.hpp" # include "boost/preprocessor/comma_if.hpp"
# include "boost/preprocessor/expr_if.hpp"
# include "boost/preprocessor/iterate.hpp" # include "boost/preprocessor/iterate.hpp"
# include "boost/config.hpp" # include "boost/config.hpp"
@@ -184,7 +185,7 @@ template<
struct list< AUX_LIST_N_PARTIAL_SPEC_PARAMS(i, T, void_) > struct list< AUX_LIST_N_PARTIAL_SPEC_PARAMS(i, T, void_) >
: BOOST_PP_CAT(list,i)< AUX_LIST_N_PARAMS(i, T) > : BOOST_PP_CAT(list,i)< AUX_LIST_N_PARAMS(i, T) >
{ {
typedef BOOST_PP_CAT(list,i)< AUX_LIST_N_PARAMS(i, T) > type; typedef BOOST_PP_EXPR_IF(i,typename) BOOST_PP_CAT(list,i)< AUX_LIST_N_PARAMS(i, T) >::type type;
}; };
#endif // i == BOOST_MPL_LIMIT_LIST_SIZE #endif // i == BOOST_MPL_LIMIT_LIST_SIZE
@@ -201,9 +202,9 @@ struct list_impl_chooser<i>
> >
struct result_ struct result_
{ {
typedef BOOST_PP_CAT(list,i)< typedef typename BOOST_PP_CAT(list,i)<
AUX_LIST_N_PARAMS(i, T) AUX_LIST_N_PARAMS(i, T)
> type; >::type type;
}; };
}; };