You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
347 lines
14 KiB
347 lines
14 KiB
/*============================================================================== |
|
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 const |
|
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 const 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 const |
|
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 const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const 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 const |
|
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 const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const 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 const |
|
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 const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const 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 const |
|
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 const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const 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 const |
|
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 const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const 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 const |
|
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 const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const 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 const |
|
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 const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const 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 const |
|
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 const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const 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 const |
|
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 const member1; typedef typename expression::dynamic_member< mpl::int_< 1> , self_type * >::type const member2; typedef typename expression::dynamic_member< mpl::int_< 2> , self_type * >::type const member3; typedef typename expression::dynamic_member< mpl::int_< 3> , self_type * >::type const member4; typedef typename expression::dynamic_member< mpl::int_< 4> , self_type * >::type const member5; typedef typename expression::dynamic_member< mpl::int_< 5> , self_type * >::type const member6; typedef typename expression::dynamic_member< mpl::int_< 6> , self_type * >::type const member7; typedef typename expression::dynamic_member< mpl::int_< 7> , self_type * >::type const member8; typedef typename expression::dynamic_member< mpl::int_< 8> , self_type * >::type const member9; typedef typename expression::dynamic_member< mpl::int_< 9> , self_type * >::type const member10; |
|
mutable dynamic_frame_type* frame; |
|
};
|
|
|