Skip to content

Commit a2071fe

Browse files
committed
Roll back vc7 workarounds; Aleksey has folded them into the MPL code
[SVN r13207]
1 parent aa705b0 commit a2071fe

File tree

1 file changed

+21
-37
lines changed

1 file changed

+21
-37
lines changed

include/boost/python/object/make_holder.hpp

Lines changed: 21 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,6 @@
1414

1515
namespace 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-
3317
template <int nargs> struct make_holder;
3418

3519
template <>
@@ -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

Comments
 (0)