2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-20 04:42:28 +00:00

Roll back vc7 workarounds; Aleksey has folded them into the MPL code

[SVN r13207]
This commit is contained in:
Dave Abrahams
2002-03-15 12:47:04 +00:00
parent aa705b07f3
commit a2071feeb1

View File

@@ -14,22 +14,6 @@
namespace boost { namespace python { namespace objects {
namespace detail
{
// Use of this workaround as opposed to straightforward mpl::at
// needed for vc7, for some reason.
template <unsigned N, class Sequence>
struct at
{
private:
typedef typename mpl::at_algorithm_traits<
typename mpl::sequence_traits<Sequence>::sequence_category
>::template algorithm<N, Sequence>::type base;
public:
typedef typename base::type type;
};
}
template <int nargs> struct make_holder;
template <>
@@ -55,7 +39,7 @@ struct make_holder<1>
struct apply
{
typedef typename mpl::apply1<Generator,T>::type holder;
typedef typename detail::at<0,ArgList>::type t0;
typedef typename mpl::at<0,ArgList>::type t0;
typedef typename forward<t0>::type f0;
static void execute(
@@ -74,9 +58,9 @@ struct make_holder<2>
struct apply
{
typedef typename mpl::apply1<Generator,T>::type holder;
typedef typename detail::at<0,ArgList>::type t0;
typedef typename mpl::at<0,ArgList>::type t0;
typedef typename forward<t0>::type f0;
typedef typename detail::at<1,ArgList>::type t1;
typedef typename mpl::at<1,ArgList>::type t1;
typedef typename forward<t1>::type f1;
static void execute(
@@ -94,11 +78,11 @@ struct make_holder<3>
struct apply
{
typedef typename mpl::apply1<Generator,T>::type holder;
typedef typename detail::at<0,ArgList>::type t0;
typedef typename mpl::at<0,ArgList>::type t0;
typedef typename forward<t0>::type f0;
typedef typename detail::at<1,ArgList>::type t1;
typedef typename mpl::at<1,ArgList>::type t1;
typedef typename forward<t1>::type f1;
typedef typename detail::at<2,ArgList>::type t2;
typedef typename mpl::at<2,ArgList>::type t2;
typedef typename forward<t2>::type f2;
static void execute(
@@ -116,13 +100,13 @@ struct make_holder<4>
struct apply
{
typedef typename mpl::apply1<Generator,T>::type holder;
typedef typename detail::at<0,ArgList>::type t0;
typedef typename mpl::at<0,ArgList>::type t0;
typedef typename forward<t0>::type f0;
typedef typename detail::at<1,ArgList>::type t1;
typedef typename mpl::at<1,ArgList>::type t1;
typedef typename forward<t1>::type f1;
typedef typename detail::at<2,ArgList>::type t2;
typedef typename mpl::at<2,ArgList>::type t2;
typedef typename forward<t2>::type f2;
typedef typename detail::at<3,ArgList>::type t3;
typedef typename mpl::at<3,ArgList>::type t3;
typedef typename forward<t3>::type f3;
static void execute(
@@ -140,15 +124,15 @@ struct make_holder<5>
struct apply
{
typedef typename mpl::apply1<Generator,T>::type holder;
typedef typename detail::at<0,ArgList>::type t0;
typedef typename mpl::at<0,ArgList>::type t0;
typedef typename forward<t0>::type f0;
typedef typename detail::at<1,ArgList>::type t1;
typedef typename mpl::at<1,ArgList>::type t1;
typedef typename forward<t1>::type f1;
typedef typename detail::at<2,ArgList>::type t2;
typedef typename mpl::at<2,ArgList>::type t2;
typedef typename forward<t2>::type f2;
typedef typename detail::at<3,ArgList>::type t3;
typedef typename mpl::at<3,ArgList>::type t3;
typedef typename forward<t3>::type f3;
typedef typename detail::at<4,ArgList>::type t4;
typedef typename mpl::at<4,ArgList>::type t4;
typedef typename forward<t4>::type f4;
static void execute(
@@ -166,17 +150,17 @@ struct make_holder<6>
struct apply
{
typedef typename mpl::apply1<Generator,T>::type holder;
typedef typename detail::at<0,ArgList>::type t0;
typedef typename mpl::at<0,ArgList>::type t0;
typedef typename forward<t0>::type f0;
typedef typename detail::at<1,ArgList>::type t1;
typedef typename mpl::at<1,ArgList>::type t1;
typedef typename forward<t1>::type f1;
typedef typename detail::at<2,ArgList>::type t2;
typedef typename mpl::at<2,ArgList>::type t2;
typedef typename forward<t2>::type f2;
typedef typename detail::at<3,ArgList>::type t3;
typedef typename mpl::at<3,ArgList>::type t3;
typedef typename forward<t3>::type f3;
typedef typename detail::at<4,ArgList>::type t4;
typedef typename mpl::at<4,ArgList>::type t4;
typedef typename forward<t4>::type f4;
typedef typename detail::at<5,ArgList>::type t5;
typedef typename mpl::at<5,ArgList>::type t5;
typedef typename forward<t5>::type f5;
static void execute(