blob: f1428ee8283d7b69b1ec046978c68f933bceed8b [file] [log] [blame]
/*==============================================================================
Copyright (c) 2005-2010 Joel de Guzman
Copyright (c) 2010 Thomas Heller
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
template <typename A0>
struct dynamic<A0> : noncopyable
{
typedef
vector1<A0>
tuple_type;
typedef
dynamic<A0>
self_type;
typedef
dynamic_frame<self_type>
dynamic_frame_type;
dynamic()
: frame(0) {}
template <int N>
static
typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
init(self_type * scope)
{
return
expression::
dynamic_member<mpl::int_<N>, self_type *>::
make(mpl::int_<N>(), scope);
}
typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1;
mutable dynamic_frame_type* frame;
};
template <typename A0 , typename A1>
struct dynamic<A0 , A1> : noncopyable
{
typedef
vector2<A0 , A1>
tuple_type;
typedef
dynamic<A0 , A1>
self_type;
typedef
dynamic_frame<self_type>
dynamic_frame_type;
dynamic()
: frame(0) {}
template <int N>
static
typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
init(self_type * scope)
{
return
expression::
dynamic_member<mpl::int_<N>, self_type *>::
make(mpl::int_<N>(), scope);
}
typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2;
mutable dynamic_frame_type* frame;
};
template <typename A0 , typename A1 , typename A2>
struct dynamic<A0 , A1 , A2> : noncopyable
{
typedef
vector3<A0 , A1 , A2>
tuple_type;
typedef
dynamic<A0 , A1 , A2>
self_type;
typedef
dynamic_frame<self_type>
dynamic_frame_type;
dynamic()
: frame(0) {}
template <int N>
static
typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
init(self_type * scope)
{
return
expression::
dynamic_member<mpl::int_<N>, self_type *>::
make(mpl::int_<N>(), scope);
}
typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3;
mutable dynamic_frame_type* frame;
};
template <typename A0 , typename A1 , typename A2 , typename A3>
struct dynamic<A0 , A1 , A2 , A3> : noncopyable
{
typedef
vector4<A0 , A1 , A2 , A3>
tuple_type;
typedef
dynamic<A0 , A1 , A2 , A3>
self_type;
typedef
dynamic_frame<self_type>
dynamic_frame_type;
dynamic()
: frame(0) {}
template <int N>
static
typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
init(self_type * scope)
{
return
expression::
dynamic_member<mpl::int_<N>, self_type *>::
make(mpl::int_<N>(), scope);
}
typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4;
mutable dynamic_frame_type* frame;
};
template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
struct dynamic<A0 , A1 , A2 , A3 , A4> : noncopyable
{
typedef
vector5<A0 , A1 , A2 , A3 , A4>
tuple_type;
typedef
dynamic<A0 , A1 , A2 , A3 , A4>
self_type;
typedef
dynamic_frame<self_type>
dynamic_frame_type;
dynamic()
: frame(0) {}
template <int N>
static
typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
init(self_type * scope)
{
return
expression::
dynamic_member<mpl::int_<N>, self_type *>::
make(mpl::int_<N>(), scope);
}
typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5;
mutable dynamic_frame_type* frame;
};
template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
struct dynamic<A0 , A1 , A2 , A3 , A4 , A5> : noncopyable
{
typedef
vector6<A0 , A1 , A2 , A3 , A4 , A5>
tuple_type;
typedef
dynamic<A0 , A1 , A2 , A3 , A4 , A5>
self_type;
typedef
dynamic_frame<self_type>
dynamic_frame_type;
dynamic()
: frame(0) {}
template <int N>
static
typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
init(self_type * scope)
{
return
expression::
dynamic_member<mpl::int_<N>, self_type *>::
make(mpl::int_<N>(), scope);
}
typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6;
mutable dynamic_frame_type* frame;
};
template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6> : noncopyable
{
typedef
vector7<A0 , A1 , A2 , A3 , A4 , A5 , A6>
tuple_type;
typedef
dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6>
self_type;
typedef
dynamic_frame<self_type>
dynamic_frame_type;
dynamic()
: frame(0) {}
template <int N>
static
typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
init(self_type * scope)
{
return
expression::
dynamic_member<mpl::int_<N>, self_type *>::
make(mpl::int_<N>(), scope);
}
typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7;
mutable dynamic_frame_type* frame;
};
template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7> : noncopyable
{
typedef
vector8<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
tuple_type;
typedef
dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7>
self_type;
typedef
dynamic_frame<self_type>
dynamic_frame_type;
dynamic()
: frame(0) {}
template <int N>
static
typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
init(self_type * scope)
{
return
expression::
dynamic_member<mpl::int_<N>, self_type *>::
make(mpl::int_<N>(), scope);
}
typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8;
mutable dynamic_frame_type* frame;
};
template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8> : noncopyable
{
typedef
vector9<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
tuple_type;
typedef
dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8>
self_type;
typedef
dynamic_frame<self_type>
dynamic_frame_type;
dynamic()
: frame(0) {}
template <int N>
static
typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
init(self_type * scope)
{
return
expression::
dynamic_member<mpl::int_<N>, self_type *>::
make(mpl::int_<N>(), scope);
}
typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9;
mutable dynamic_frame_type* frame;
};
template <typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
struct dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9> : noncopyable
{
typedef
vector10<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
tuple_type;
typedef
dynamic<A0 , A1 , A2 , A3 , A4 , A5 , A6 , A7 , A8 , A9>
self_type;
typedef
dynamic_frame<self_type>
dynamic_frame_type;
dynamic()
: frame(0) {}
template <int N>
static
typename expression::dynamic_member<mpl::int_<N>, self_type *>::type
init(self_type * scope)
{
return
expression::
dynamic_member<mpl::int_<N>, self_type *>::
make(mpl::int_<N>(), scope);
}
typedef typename expression::dynamic_member< mpl::int_< 0> , self_type * >::type member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type member10;
mutable dynamic_frame_type* frame;
};