template <typename This, typename A0, typename Context>
struct result<This(A0, Context)>
{
- typedef
- typename proto::detail::uncvref<
- typename result_of::env<
- Context
- >::type
- >::type
- outer_env_type;
-
- typedef
- typename remove_pointer<
- typename remove_reference<
- typename fusion::result_of::at_c<
- outer_env_type
- , 0
- >::type
- >::type
- >::type
- actor_type;
-
- typedef
- typename result_of::eval<
- A0 const &
- , Context const &
- >::type
- a0_type;
-
- typedef
- vector2<actor_type const *, a0_type>
- inner_env_type;
-
- typedef
- scoped_environment<
- inner_env_type
- , outer_env_type
- , vector0<>
- , detail::map_local_index_to_tuple<>
- >
- env_type;
-
- typedef
- typename result_of::eval<
- actor_type const &
- , typename result_of::context<
- inner_env_type
- , typename result_of::actions<
- Context
- >::type
- >::type
- >::type
- type;
+ typedef
+ typename proto::detail::uncvref<
+ typename result_of::env<
+ Context
+ >::type
+ >::type
+ outer_env_type;
+
+ typedef
+ typename remove_pointer<
+ typename remove_reference<
+ typename fusion::result_of::at_c<
+ outer_env_type
+ , 0
+ >::type
+ >::type
+ >::type
+ actor_type;
+
+ typedef
+ typename result_of::eval<
+ A0 const &
+ , Context const &
+ >::type
+ a0_type;
+
+ typedef
+ vector2<actor_type const *, a0_type>
+ inner_env_type;
+
+ typedef
+ scoped_environment<
+ inner_env_type
+ , outer_env_type
+ , vector0<>
+ , detail::map_local_index_to_tuple<>
+ >
+ env_type;
+
+ typedef
+ typename result_of::eval<
+ actor_type const &
+ , typename result_of::context<
+ inner_env_type
+ , typename result_of::actions<
+ Context
+ >::type
+ >::type
+ >::type
+ type;
};
template <typename A0, typename Context>
//std::cout << typeid(checker).name() << "\n";
//std::cout << typeid(checker).name() << "\n";
- typedef
- typename proto::detail::uncvref<
- typename result_of::env<
- Context
- >::type
- >::type
- outer_env_type;
-
- typedef
- typename remove_pointer<
- typename remove_reference<
- typename fusion::result_of::at_c<
- outer_env_type
- , 0
- >::type
- >::type
- >::type
- actor_type;
-
- typedef
- typename result_of::eval<
- A0 const &
- , Context const &
- >::type
- a0_type;
-
- typedef
- vector2<actor_type const *, a0_type>
- inner_env_type;
-
- typedef
- scoped_environment<
- inner_env_type
- , outer_env_type
- , vector0<>
- , detail::map_local_index_to_tuple<>
- >
- env_type;
-
- inner_env_type inner_env = {fusion::at_c<0>(phoenix::env(ctx)), phoenix::eval(a0, ctx)};
- vector0<> locals;
- env_type env(inner_env, phoenix::env(ctx), locals);
-
- return phoenix::eval(*fusion::at_c<0>(phoenix::env(ctx)), phoenix::context(inner_env, phoenix::actions(ctx)));
+ typedef
+ typename proto::detail::uncvref<
+ typename result_of::env<
+ Context
+ >::type
+ >::type
+ outer_env_type;
+
+ typedef
+ typename remove_pointer<
+ typename remove_reference<
+ typename fusion::result_of::at_c<
+ outer_env_type
+ , 0
+ >::type
+ >::type
+ >::type
+ actor_type;
+
+ typedef
+ typename result_of::eval<
+ A0 const &
+ , Context const &
+ >::type
+ a0_type;
+
+ typedef
+ vector2<actor_type const *, a0_type>
+ inner_env_type;
+
+ typedef
+ scoped_environment<
+ inner_env_type
+ , outer_env_type
+ , vector0<>
+ , detail::map_local_index_to_tuple<>
+ >
+ env_type;
+
+ inner_env_type inner_env = {fusion::at_c<0>(phoenix::env(ctx)), phoenix::eval(a0, ctx)};
+ vector0<> locals;
+ env_type env(inner_env, phoenix::env(ctx), locals);
+
+ return phoenix::eval(*fusion::at_c<0>(phoenix::env(ctx)), phoenix::context(inner_env, phoenix::actions(ctx)));
//return (*fusion::at_c<0>(phoenix::env(ctx)))(eval(a0, ctx));
}
};
: call<this_eval>
{};
- template <typename Dummy>
+ template <typename Dummy>
struct is_nullary::when<rule::this_, Dummy>
: proto::make<mpl::false_()>
{};
- template <typename A0>
- typename expression::this_<A0>::type const
- this_(A0 const & a0)
- {
- return expression::this_<A0>::make(a0);
- }
+ template <typename A0>
+ typename expression::this_<A0>::type const
+ this_(A0 const & a0)
+ {
+ return expression::this_<A0>::make(a0);
+ }
}}