1414
1515namespace boost { namespace python { namespace objects {
1616
17- namespace detail
18- {
19- // Use of this workaround as opposed to straightforward mpl::at
20- // needed for vc7, for some reason.
21- template <unsigned N, class Sequence >
22- struct at
23- {
24- private:
25- typedef typename mpl::at_algorithm_traits<
26- typename mpl::sequence_traits<Sequence>::sequence_category
27- >::template algorithm<N, Sequence>::type base;
28- public:
29- typedef typename base::type type;
30- };
31- }
32-
3317template <int nargs> struct make_holder ;
3418
3519template <>
@@ -55,7 +39,7 @@ struct make_holder<1>
5539 struct apply
5640 {
5741 typedef typename mpl::apply1<Generator,T>::type holder;
58- typedef typename detail ::at<0 ,ArgList>::type t0;
42+ typedef typename mpl ::at<0 ,ArgList>::type t0;
5943 typedef typename forward<t0>::type f0;
6044
6145 static void execute (
@@ -74,9 +58,9 @@ struct make_holder<2>
7458 struct apply
7559 {
7660 typedef typename mpl::apply1<Generator,T>::type holder;
77- typedef typename detail ::at<0 ,ArgList>::type t0;
61+ typedef typename mpl ::at<0 ,ArgList>::type t0;
7862 typedef typename forward<t0>::type f0;
79- typedef typename detail ::at<1 ,ArgList>::type t1;
63+ typedef typename mpl ::at<1 ,ArgList>::type t1;
8064 typedef typename forward<t1>::type f1;
8165
8266 static void execute (
@@ -94,11 +78,11 @@ struct make_holder<3>
9478 struct apply
9579 {
9680 typedef typename mpl::apply1<Generator,T>::type holder;
97- typedef typename detail ::at<0 ,ArgList>::type t0;
81+ typedef typename mpl ::at<0 ,ArgList>::type t0;
9882 typedef typename forward<t0>::type f0;
99- typedef typename detail ::at<1 ,ArgList>::type t1;
83+ typedef typename mpl ::at<1 ,ArgList>::type t1;
10084 typedef typename forward<t1>::type f1;
101- typedef typename detail ::at<2 ,ArgList>::type t2;
85+ typedef typename mpl ::at<2 ,ArgList>::type t2;
10286 typedef typename forward<t2>::type f2;
10387
10488 static void execute (
@@ -116,13 +100,13 @@ struct make_holder<4>
116100 struct apply
117101 {
118102 typedef typename mpl::apply1<Generator,T>::type holder;
119- typedef typename detail ::at<0 ,ArgList>::type t0;
103+ typedef typename mpl ::at<0 ,ArgList>::type t0;
120104 typedef typename forward<t0>::type f0;
121- typedef typename detail ::at<1 ,ArgList>::type t1;
105+ typedef typename mpl ::at<1 ,ArgList>::type t1;
122106 typedef typename forward<t1>::type f1;
123- typedef typename detail ::at<2 ,ArgList>::type t2;
107+ typedef typename mpl ::at<2 ,ArgList>::type t2;
124108 typedef typename forward<t2>::type f2;
125- typedef typename detail ::at<3 ,ArgList>::type t3;
109+ typedef typename mpl ::at<3 ,ArgList>::type t3;
126110 typedef typename forward<t3>::type f3;
127111
128112 static void execute (
@@ -140,15 +124,15 @@ struct make_holder<5>
140124 struct apply
141125 {
142126 typedef typename mpl::apply1<Generator,T>::type holder;
143- typedef typename detail ::at<0 ,ArgList>::type t0;
127+ typedef typename mpl ::at<0 ,ArgList>::type t0;
144128 typedef typename forward<t0>::type f0;
145- typedef typename detail ::at<1 ,ArgList>::type t1;
129+ typedef typename mpl ::at<1 ,ArgList>::type t1;
146130 typedef typename forward<t1>::type f1;
147- typedef typename detail ::at<2 ,ArgList>::type t2;
131+ typedef typename mpl ::at<2 ,ArgList>::type t2;
148132 typedef typename forward<t2>::type f2;
149- typedef typename detail ::at<3 ,ArgList>::type t3;
133+ typedef typename mpl ::at<3 ,ArgList>::type t3;
150134 typedef typename forward<t3>::type f3;
151- typedef typename detail ::at<4 ,ArgList>::type t4;
135+ typedef typename mpl ::at<4 ,ArgList>::type t4;
152136 typedef typename forward<t4>::type f4;
153137
154138 static void execute (
@@ -166,17 +150,17 @@ struct make_holder<6>
166150 struct apply
167151 {
168152 typedef typename mpl::apply1<Generator,T>::type holder;
169- typedef typename detail ::at<0 ,ArgList>::type t0;
153+ typedef typename mpl ::at<0 ,ArgList>::type t0;
170154 typedef typename forward<t0>::type f0;
171- typedef typename detail ::at<1 ,ArgList>::type t1;
155+ typedef typename mpl ::at<1 ,ArgList>::type t1;
172156 typedef typename forward<t1>::type f1;
173- typedef typename detail ::at<2 ,ArgList>::type t2;
157+ typedef typename mpl ::at<2 ,ArgList>::type t2;
174158 typedef typename forward<t2>::type f2;
175- typedef typename detail ::at<3 ,ArgList>::type t3;
159+ typedef typename mpl ::at<3 ,ArgList>::type t3;
176160 typedef typename forward<t3>::type f3;
177- typedef typename detail ::at<4 ,ArgList>::type t4;
161+ typedef typename mpl ::at<4 ,ArgList>::type t4;
178162 typedef typename forward<t4>::type f4;
179- typedef typename detail ::at<5 ,ArgList>::type t5;
163+ typedef typename mpl ::at<5 ,ArgList>::type t5;
180164 typedef typename forward<t5>::type f5;
181165
182166 static void execute (
0 commit comments