summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2014-10-19 20:22:58 (GMT)
committerTobias Markmann <tm@ayena.de>2014-10-20 13:49:33 (GMT)
commit6b22dfcf59474dd016a0355a3102a1dd3692d92c (patch)
tree2b1fd33be433a91e81fee84fdc2bf1b52575d934 /3rdParty/Boost/src/boost/phoenix/scope
parent38b0cb785fea8eae5e48fae56440695fdfd10ee1 (diff)
downloadswift-contrib-6b22dfcf59474dd016a0355a3102a1dd3692d92c.zip
swift-contrib-6b22dfcf59474dd016a0355a3102a1dd3692d92c.tar.bz2
Update Boost in 3rdParty to version 1.56.0.
This updates Boost in our 3rdParty directory to version 1.56.0. Updated our update.sh script to stop on error. Changed error reporting in SwiftTools/CrashReporter.cpp to SWIFT_LOG due to missing include of <iostream> with newer Boost. Change-Id: I4b35c77de951333979a524097f35f5f83d325edc
Diffstat (limited to '3rdParty/Boost/src/boost/phoenix/scope')
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/lambda.hpp52
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/let.hpp4
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/local_variable.hpp6
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_10.hpp53
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_20.hpp53
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_30.hpp53
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_40.hpp53
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_50.hpp53
-rw-r--r--3rdParty/Boost/src/boost/phoenix/scope/scoped_environment.hpp20
9 files changed, 151 insertions, 196 deletions
diff --git a/3rdParty/Boost/src/boost/phoenix/scope/lambda.hpp b/3rdParty/Boost/src/boost/phoenix/scope/lambda.hpp
index 432edd9..8221966 100644
--- a/3rdParty/Boost/src/boost/phoenix/scope/lambda.hpp
+++ b/3rdParty/Boost/src/boost/phoenix/scope/lambda.hpp
@@ -64,123 +64,123 @@ namespace boost { namespace phoenix
, typename Lambda
, typename Context
>
struct result<This(OuterEnv, Locals, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename result_of::eval<
- Lambda
- , typename result_of::context<
- scoped_environment<
- env_type
- , outer_env_type
- , locals_type
- , map_type
- >
- , typename result_of::actions<
- Context
- >::type
- >::type
- >::type
- type;
+ typedef
+ typename result_of::eval<
+ Lambda
+ , typename result_of::context<
+ scoped_environment<
+ env_type
+ , outer_env_type
+ , locals_type
+ , map_type
+ >
+ , typename result_of::actions<
+ Context
+ >::type
+ >::type
+ >::type
+ type;
};
template <typename OuterEnv, typename Locals, typename Map, typename Lambda, typename Context>
typename result<lambda_eval(OuterEnv const &, Locals const &, Map const &, Lambda const &, Context const &)>::type
operator()(OuterEnv const & outer_env, Locals const & locals, Map const &, Lambda const & lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- scoped_environment<
+ scoped_environment<
env_type
, outer_env_type
, locals_type
, map_type
>
env(phoenix::env(ctx), proto::value(outer_env), proto::value(locals));
return eval(lambda, phoenix::context(env, phoenix::actions(ctx)));
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda, Dummy>
: call<lambda_eval, Dummy>
{};
template <typename Dummy>
struct is_nullary::when<rule::lambda, Dummy>
: proto::call<
evaluator(
proto::_child_c<3>
, proto::call<
functional::context(
proto::make<
mpl::true_()
>
, proto::make<
detail::scope_is_nullary_actions()
>
)
>
, proto::make<
proto::empty_env()
>
)
@@ -216,161 +216,161 @@ namespace boost { namespace phoenix
, _context
, proto::make<proto::empty_env()>
)
>
>()
>
>
>
>
{};
struct lambda_actor_eval
{
template <typename Sig>
struct result;
template <typename This, typename Vars, typename Map, typename Lambda, typename Context>
struct result<This(Vars, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
typedef
typename proto::detail::uncvref<
typename result_of::actions<Context>::type
>::type
actions_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
typedef
typename expression::lambda<
env_type
, locals_type
, Map
, Lambda
>::type const
type;
};
template <
typename Vars
, typename Map
, typename Lambda
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
+ /*typedef
typename proto::detail::uncvref<
typename result_of::actions<Context>::type
>::type
- actions_type;
+ actions_type;*/
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef
+ /*typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Map>::type
>::type
- map_type;
-
- typedef typename
+ map_type;*/
+
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
locals_type locals = initialize_locals(proto::value(vars), ctx);
return
expression::
lambda<env_type, locals_type, Map, Lambda>::
make(phoenix::env(ctx), locals, map, lambda);
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda_actor, Dummy>
: call<lambda_actor_eval, Dummy>
{};
template <typename Locals = void, typename Map = void, typename Dummy = void>
struct lambda_actor_gen;
template <>
struct lambda_actor_gen<void, void, void>
{
template <typename Expr>
typename expression::lambda_actor<vector0<>, detail::map_local_index_to_tuple<>, Expr>::type const
operator[](Expr const & expr) const
{
typedef vector0<> locals_type;
typedef detail::map_local_index_to_tuple<> map_type;
return expression::lambda_actor<locals_type, map_type, Expr>::make(locals_type(), map_type(), expr);
}
};
template <typename Locals, typename Map>
struct lambda_actor_gen<Locals, Map>
{
- lambda_actor_gen(Locals const & locals)
- : locals(locals)
+ lambda_actor_gen(Locals const & locals_)
+ : locals(locals_)
{}
lambda_actor_gen(lambda_actor_gen const & o)
: locals(o.locals)
{};
template <typename Expr>
typename expression::lambda_actor<
Locals
, Map
, Expr
>::type const
operator[](Expr const & expr) const
{
return expression::lambda_actor<Locals, Map, Expr>::make(locals, Map(), expr);
}
Locals locals;
};
struct lambda_local_gen
: lambda_actor_gen<>
{
lambda_actor_gen<> const
operator()() const
{
return lambda_actor_gen<>();
}
#define BOOST_PHOENIX_SCOPE_ACTOR_GEN_NAME lambda_actor_gen
#define BOOST_PHOENIX_SCOPE_ACTOR_GEN_FUNCTION operator()
#define BOOST_PHOENIX_SCOPE_ACTOR_GEN_CONST const
#include <boost/phoenix/scope/detail/local_gen.hpp>
#undef BOOST_PHOENIX_SCOPE_ACTOR_GEN_NAME
#undef BOOST_PHOENIX_SCOPE_ACTOR_GEN_FUNCTION
diff --git a/3rdParty/Boost/src/boost/phoenix/scope/let.hpp b/3rdParty/Boost/src/boost/phoenix/scope/let.hpp
index 8c84571..f1b428c 100644
--- a/3rdParty/Boost/src/boost/phoenix/scope/let.hpp
+++ b/3rdParty/Boost/src/boost/phoenix/scope/let.hpp
@@ -98,72 +98,72 @@ namespace boost { namespace phoenix
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Map>::type
>::type
map_type;
typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
locals_type locals = initialize_locals(proto::value(vars), ctx);
scoped_environment<
env_type
, env_type
, locals_type
, map_type
>
env(phoenix::env(ctx), phoenix::env(ctx), locals);
return eval(expr, phoenix::context(env, phoenix::actions(ctx)));
}
};
template <typename Dummy>
struct default_actions::when<rule::let_, Dummy>
: call<let_eval, Dummy>
{};
template <typename Locals, typename Map>
struct let_actor_gen
{
- let_actor_gen(Locals const & locals)
- : locals(locals)
+ let_actor_gen(Locals const & locals_)
+ : locals(locals_)
{}
let_actor_gen(let_actor_gen const & o)
: locals(o.locals)
{}
template <typename Expr>
typename expression::let_<
Locals
, Map
, Expr
>::type const
operator[](Expr const & expr) const
{
return expression::let_<Locals, Map, Expr>::make(locals, Map(), expr);
}
Locals locals;
};
#define BOOST_PHOENIX_SCOPE_ACTOR_GEN_NAME let_actor_gen
#define BOOST_PHOENIX_SCOPE_ACTOR_GEN_FUNCTION let
#define BOOST_PHOENIX_SCOPE_ACTOR_GEN_CONST
#include <boost/phoenix/scope/detail/local_gen.hpp>
#undef BOOST_PHOENIX_SCOPE_ACTOR_GEN_NAME
#undef BOOST_PHOENIX_SCOPE_ACTOR_GEN_FUNCTION
#undef BOOST_PHOENIX_SCOPE_ACTOR_GEN_CONST
template <typename Dummy>
struct is_nullary::when<rule::let_, Dummy>
: proto::make<
mpl::and_<
proto::fold<
proto::call<proto::_value(proto::_child_c<0>)>
, proto::make<mpl::true_()>
diff --git a/3rdParty/Boost/src/boost/phoenix/scope/local_variable.hpp b/3rdParty/Boost/src/boost/phoenix/scope/local_variable.hpp
index ebc01c3..d62a5bb 100644
--- a/3rdParty/Boost/src/boost/phoenix/scope/local_variable.hpp
+++ b/3rdParty/Boost/src/boost/phoenix/scope/local_variable.hpp
@@ -25,103 +25,103 @@ namespace boost { namespace phoenix
namespace expression
{
template <typename Key>
struct local_variable
: expression::terminal<detail::local<Key> >
{
typedef typename expression::terminal<detail::local<Key> >::type type;
static type make()
{
type const e = {};
return e;
}
};
}
namespace rule
{
struct local_variable
: expression::local_variable<proto::_>
{};
struct local_var_def
: proto::assign<local_variable, meta_grammar>
{};
}
namespace result_of
{
template <typename Key>
struct is_nullary<custom_terminal<detail::local<Key> > >
: mpl::false_
{};
}
-
+
namespace detail
{
struct scope_is_nullary_actions
{
template <typename Rule, typename Dummy = void>
struct when
: boost::phoenix::is_nullary::when<Rule, Dummy>
{};
};
template <typename Dummy>
struct scope_is_nullary_actions::when<boost::phoenix::rule::custom_terminal, Dummy>
: proto::or_<
proto::when<boost::phoenix::rule::local_variable, mpl::true_()>
, proto::otherwise<
is_nullary::when<boost::phoenix::rule::custom_terminal, Dummy>
>
>
{};
struct local_var_not_found
{
};
}
template<typename Key>
struct is_custom_terminal<detail::local<Key> >
: mpl::true_
{};
- template <typename Key>
- struct custom_terminal<detail::local<Key> >
+ template <typename Key>
+ struct custom_terminal<detail::local<Key> >
{
template <typename Sig>
struct result;
template <typename This, typename Local, typename Context>
struct result<This(Local, Context)>
: result<This(Local const &, Context)>
{};
template <typename This, typename Local, typename Context>
struct result<This(Local &, Context)>
{
typedef
typename remove_reference<
typename result_of::env<Context>::type
>::type
env_type;
typedef typename detail::apply_local<detail::local<Key>, env_type>::type type;
};
template <typename Local, typename Context>
typename result<custom_terminal(Local const &, Context const&)>::type
operator()(Local, Context const & ctx)
{
typedef
typename remove_reference<
typename result_of::env<Context>::type
>::type
env_type;
typedef typename detail::apply_local<detail::local<Key>, env_type>::type return_type;
static const int index_value = detail::get_index<typename env_type::map_type, detail::local<Key> >::value;
diff --git a/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_10.hpp b/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_10.hpp
index 333240e..754f2b9 100644
--- a/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_10.hpp
+++ b/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_10.hpp
@@ -20,120 +20,120 @@ namespace boost { namespace phoenix
, typename OuterEnv
, typename Locals
, typename Map
, typename Lambda
, typename Context
>
struct result<This(OuterEnv, Locals, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename result_of::eval<
- Lambda
- , typename result_of::context<
- scoped_environment<
- env_type
- , outer_env_type
- , locals_type
- , map_type
- >
- , typename result_of::actions<
- Context
- >::type
- >::type
- >::type
- type;
+ typedef
+ typename result_of::eval<
+ Lambda
+ , typename result_of::context<
+ scoped_environment<
+ env_type
+ , outer_env_type
+ , locals_type
+ , map_type
+ >
+ , typename result_of::actions<
+ Context
+ >::type
+ >::type
+ >::type
+ type;
};
template <typename OuterEnv, typename Locals, typename Map, typename Lambda, typename Context>
typename result<lambda_eval(OuterEnv const &, Locals const &, Map const &, Lambda const &, Context const &)>::type
operator()(OuterEnv const & outer_env, Locals const & locals, Map const &, Lambda const & lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- scoped_environment<
+ scoped_environment<
env_type
, outer_env_type
, locals_type
, map_type
>
env(phoenix::env(ctx), proto::value(outer_env), proto::value(locals));
return eval(lambda, phoenix::context(env, phoenix::actions(ctx)));
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda, Dummy>
: call<lambda_eval, Dummy>
{};
template <typename Dummy>
struct is_nullary::when<rule::lambda, Dummy>
: proto::call<
evaluator(
proto::_child_c<3>
, proto::call<
functional::context(
proto::make<
mpl::true_()
>
, proto::make<
detail::scope_is_nullary_actions()
>
)
>
, proto::make<
proto::empty_env()
>
)
>
{};
template <typename Dummy>
@@ -163,154 +163,145 @@ namespace boost { namespace phoenix
evaluator(
proto::_
, _context
, proto::make<proto::empty_env()>
)
>
>()
>
>
>
>
{};
struct lambda_actor_eval
{
template <typename Sig>
struct result;
template <typename This, typename Vars, typename Map, typename Lambda, typename Context>
struct result<This(Vars, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
typedef
typename proto::detail::uncvref<
typename result_of::actions<Context>::type
>::type
actions_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
typedef
typename expression::lambda<
env_type
, locals_type
, Map
, Lambda
>::type const
type;
};
template <
typename Vars
, typename Map
, typename Lambda
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename proto::detail::uncvref<
- typename result_of::actions<Context>::type
- >::type
- actions_type;
+
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef
- typename proto::detail::uncvref<
- typename proto::result_of::value<Map>::type
- >::type
- map_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
locals_type locals = initialize_locals(proto::value(vars), ctx);
return
expression::
lambda<env_type, locals_type, Map, Lambda>::
make(phoenix::env(ctx), locals, map, lambda);
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda_actor, Dummy>
: call<lambda_actor_eval, Dummy>
{};
template <typename Locals = void, typename Map = void, typename Dummy = void>
struct lambda_actor_gen;
template <>
struct lambda_actor_gen<void, void, void>
{
template <typename Expr>
typename expression::lambda_actor<vector0<>, detail::map_local_index_to_tuple<>, Expr>::type const
operator[](Expr const & expr) const
{
typedef vector0<> locals_type;
typedef detail::map_local_index_to_tuple<> map_type;
return expression::lambda_actor<locals_type, map_type, Expr>::make(locals_type(), map_type(), expr);
}
};
template <typename Locals, typename Map>
struct lambda_actor_gen<Locals, Map>
{
- lambda_actor_gen(Locals const & locals)
- : locals(locals)
+ lambda_actor_gen(Locals const & locals_)
+ : locals(locals_)
{}
lambda_actor_gen(lambda_actor_gen const & o)
: locals(o.locals)
{};
template <typename Expr>
typename expression::lambda_actor<
Locals
, Map
, Expr
>::type const
operator[](Expr const & expr) const
{
return expression::lambda_actor<Locals, Map, Expr>::make(locals, Map(), expr);
}
Locals locals;
};
struct lambda_local_gen
: lambda_actor_gen<>
{
lambda_actor_gen<> const
operator()() const
{
return lambda_actor_gen<>();
}
template <typename A0>
lambda_actor_gen<
vector1<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type>
, detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type>
diff --git a/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_20.hpp b/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_20.hpp
index 7eefa43..d9a4bdd 100644
--- a/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_20.hpp
+++ b/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_20.hpp
@@ -20,120 +20,120 @@ namespace boost { namespace phoenix
, typename OuterEnv
, typename Locals
, typename Map
, typename Lambda
, typename Context
>
struct result<This(OuterEnv, Locals, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename result_of::eval<
- Lambda
- , typename result_of::context<
- scoped_environment<
- env_type
- , outer_env_type
- , locals_type
- , map_type
- >
- , typename result_of::actions<
- Context
- >::type
- >::type
- >::type
- type;
+ typedef
+ typename result_of::eval<
+ Lambda
+ , typename result_of::context<
+ scoped_environment<
+ env_type
+ , outer_env_type
+ , locals_type
+ , map_type
+ >
+ , typename result_of::actions<
+ Context
+ >::type
+ >::type
+ >::type
+ type;
};
template <typename OuterEnv, typename Locals, typename Map, typename Lambda, typename Context>
typename result<lambda_eval(OuterEnv const &, Locals const &, Map const &, Lambda const &, Context const &)>::type
operator()(OuterEnv const & outer_env, Locals const & locals, Map const &, Lambda const & lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- scoped_environment<
+ scoped_environment<
env_type
, outer_env_type
, locals_type
, map_type
>
env(phoenix::env(ctx), proto::value(outer_env), proto::value(locals));
return eval(lambda, phoenix::context(env, phoenix::actions(ctx)));
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda, Dummy>
: call<lambda_eval, Dummy>
{};
template <typename Dummy>
struct is_nullary::when<rule::lambda, Dummy>
: proto::call<
evaluator(
proto::_child_c<3>
, proto::call<
functional::context(
proto::make<
mpl::true_()
>
, proto::make<
detail::scope_is_nullary_actions()
>
)
>
, proto::make<
proto::empty_env()
>
)
>
{};
template <typename Dummy>
@@ -163,154 +163,145 @@ namespace boost { namespace phoenix
evaluator(
proto::_
, _context
, proto::make<proto::empty_env()>
)
>
>()
>
>
>
>
{};
struct lambda_actor_eval
{
template <typename Sig>
struct result;
template <typename This, typename Vars, typename Map, typename Lambda, typename Context>
struct result<This(Vars, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
typedef
typename proto::detail::uncvref<
typename result_of::actions<Context>::type
>::type
actions_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
typedef
typename expression::lambda<
env_type
, locals_type
, Map
, Lambda
>::type const
type;
};
template <
typename Vars
, typename Map
, typename Lambda
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename proto::detail::uncvref<
- typename result_of::actions<Context>::type
- >::type
- actions_type;
+
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef
- typename proto::detail::uncvref<
- typename proto::result_of::value<Map>::type
- >::type
- map_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
locals_type locals = initialize_locals(proto::value(vars), ctx);
return
expression::
lambda<env_type, locals_type, Map, Lambda>::
make(phoenix::env(ctx), locals, map, lambda);
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda_actor, Dummy>
: call<lambda_actor_eval, Dummy>
{};
template <typename Locals = void, typename Map = void, typename Dummy = void>
struct lambda_actor_gen;
template <>
struct lambda_actor_gen<void, void, void>
{
template <typename Expr>
typename expression::lambda_actor<vector0<>, detail::map_local_index_to_tuple<>, Expr>::type const
operator[](Expr const & expr) const
{
typedef vector0<> locals_type;
typedef detail::map_local_index_to_tuple<> map_type;
return expression::lambda_actor<locals_type, map_type, Expr>::make(locals_type(), map_type(), expr);
}
};
template <typename Locals, typename Map>
struct lambda_actor_gen<Locals, Map>
{
- lambda_actor_gen(Locals const & locals)
- : locals(locals)
+ lambda_actor_gen(Locals const & locals_)
+ : locals(locals_)
{}
lambda_actor_gen(lambda_actor_gen const & o)
: locals(o.locals)
{};
template <typename Expr>
typename expression::lambda_actor<
Locals
, Map
, Expr
>::type const
operator[](Expr const & expr) const
{
return expression::lambda_actor<Locals, Map, Expr>::make(locals, Map(), expr);
}
Locals locals;
};
struct lambda_local_gen
: lambda_actor_gen<>
{
lambda_actor_gen<> const
operator()() const
{
return lambda_actor_gen<>();
}
template <typename A0>
lambda_actor_gen<
vector1<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type>
, detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type>
diff --git a/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_30.hpp b/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_30.hpp
index e18d622..e7f8b2a 100644
--- a/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_30.hpp
+++ b/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_30.hpp
@@ -20,120 +20,120 @@ namespace boost { namespace phoenix
, typename OuterEnv
, typename Locals
, typename Map
, typename Lambda
, typename Context
>
struct result<This(OuterEnv, Locals, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename result_of::eval<
- Lambda
- , typename result_of::context<
- scoped_environment<
- env_type
- , outer_env_type
- , locals_type
- , map_type
- >
- , typename result_of::actions<
- Context
- >::type
- >::type
- >::type
- type;
+ typedef
+ typename result_of::eval<
+ Lambda
+ , typename result_of::context<
+ scoped_environment<
+ env_type
+ , outer_env_type
+ , locals_type
+ , map_type
+ >
+ , typename result_of::actions<
+ Context
+ >::type
+ >::type
+ >::type
+ type;
};
template <typename OuterEnv, typename Locals, typename Map, typename Lambda, typename Context>
typename result<lambda_eval(OuterEnv const &, Locals const &, Map const &, Lambda const &, Context const &)>::type
operator()(OuterEnv const & outer_env, Locals const & locals, Map const &, Lambda const & lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- scoped_environment<
+ scoped_environment<
env_type
, outer_env_type
, locals_type
, map_type
>
env(phoenix::env(ctx), proto::value(outer_env), proto::value(locals));
return eval(lambda, phoenix::context(env, phoenix::actions(ctx)));
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda, Dummy>
: call<lambda_eval, Dummy>
{};
template <typename Dummy>
struct is_nullary::when<rule::lambda, Dummy>
: proto::call<
evaluator(
proto::_child_c<3>
, proto::call<
functional::context(
proto::make<
mpl::true_()
>
, proto::make<
detail::scope_is_nullary_actions()
>
)
>
, proto::make<
proto::empty_env()
>
)
>
{};
template <typename Dummy>
@@ -163,154 +163,145 @@ namespace boost { namespace phoenix
evaluator(
proto::_
, _context
, proto::make<proto::empty_env()>
)
>
>()
>
>
>
>
{};
struct lambda_actor_eval
{
template <typename Sig>
struct result;
template <typename This, typename Vars, typename Map, typename Lambda, typename Context>
struct result<This(Vars, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
typedef
typename proto::detail::uncvref<
typename result_of::actions<Context>::type
>::type
actions_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
typedef
typename expression::lambda<
env_type
, locals_type
, Map
, Lambda
>::type const
type;
};
template <
typename Vars
, typename Map
, typename Lambda
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename proto::detail::uncvref<
- typename result_of::actions<Context>::type
- >::type
- actions_type;
+
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef
- typename proto::detail::uncvref<
- typename proto::result_of::value<Map>::type
- >::type
- map_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
locals_type locals = initialize_locals(proto::value(vars), ctx);
return
expression::
lambda<env_type, locals_type, Map, Lambda>::
make(phoenix::env(ctx), locals, map, lambda);
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda_actor, Dummy>
: call<lambda_actor_eval, Dummy>
{};
template <typename Locals = void, typename Map = void, typename Dummy = void>
struct lambda_actor_gen;
template <>
struct lambda_actor_gen<void, void, void>
{
template <typename Expr>
typename expression::lambda_actor<vector0<>, detail::map_local_index_to_tuple<>, Expr>::type const
operator[](Expr const & expr) const
{
typedef vector0<> locals_type;
typedef detail::map_local_index_to_tuple<> map_type;
return expression::lambda_actor<locals_type, map_type, Expr>::make(locals_type(), map_type(), expr);
}
};
template <typename Locals, typename Map>
struct lambda_actor_gen<Locals, Map>
{
- lambda_actor_gen(Locals const & locals)
- : locals(locals)
+ lambda_actor_gen(Locals const & locals_)
+ : locals(locals_)
{}
lambda_actor_gen(lambda_actor_gen const & o)
: locals(o.locals)
{};
template <typename Expr>
typename expression::lambda_actor<
Locals
, Map
, Expr
>::type const
operator[](Expr const & expr) const
{
return expression::lambda_actor<Locals, Map, Expr>::make(locals, Map(), expr);
}
Locals locals;
};
struct lambda_local_gen
: lambda_actor_gen<>
{
lambda_actor_gen<> const
operator()() const
{
return lambda_actor_gen<>();
}
template <typename A0>
lambda_actor_gen<
vector1<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type>
, detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type>
diff --git a/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_40.hpp b/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_40.hpp
index c291c62..11fb23e 100644
--- a/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_40.hpp
+++ b/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_40.hpp
@@ -20,120 +20,120 @@ namespace boost { namespace phoenix
, typename OuterEnv
, typename Locals
, typename Map
, typename Lambda
, typename Context
>
struct result<This(OuterEnv, Locals, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename result_of::eval<
- Lambda
- , typename result_of::context<
- scoped_environment<
- env_type
- , outer_env_type
- , locals_type
- , map_type
- >
- , typename result_of::actions<
- Context
- >::type
- >::type
- >::type
- type;
+ typedef
+ typename result_of::eval<
+ Lambda
+ , typename result_of::context<
+ scoped_environment<
+ env_type
+ , outer_env_type
+ , locals_type
+ , map_type
+ >
+ , typename result_of::actions<
+ Context
+ >::type
+ >::type
+ >::type
+ type;
};
template <typename OuterEnv, typename Locals, typename Map, typename Lambda, typename Context>
typename result<lambda_eval(OuterEnv const &, Locals const &, Map const &, Lambda const &, Context const &)>::type
operator()(OuterEnv const & outer_env, Locals const & locals, Map const &, Lambda const & lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- scoped_environment<
+ scoped_environment<
env_type
, outer_env_type
, locals_type
, map_type
>
env(phoenix::env(ctx), proto::value(outer_env), proto::value(locals));
return eval(lambda, phoenix::context(env, phoenix::actions(ctx)));
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda, Dummy>
: call<lambda_eval, Dummy>
{};
template <typename Dummy>
struct is_nullary::when<rule::lambda, Dummy>
: proto::call<
evaluator(
proto::_child_c<3>
, proto::call<
functional::context(
proto::make<
mpl::true_()
>
, proto::make<
detail::scope_is_nullary_actions()
>
)
>
, proto::make<
proto::empty_env()
>
)
>
{};
template <typename Dummy>
@@ -163,154 +163,145 @@ namespace boost { namespace phoenix
evaluator(
proto::_
, _context
, proto::make<proto::empty_env()>
)
>
>()
>
>
>
>
{};
struct lambda_actor_eval
{
template <typename Sig>
struct result;
template <typename This, typename Vars, typename Map, typename Lambda, typename Context>
struct result<This(Vars, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
typedef
typename proto::detail::uncvref<
typename result_of::actions<Context>::type
>::type
actions_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
typedef
typename expression::lambda<
env_type
, locals_type
, Map
, Lambda
>::type const
type;
};
template <
typename Vars
, typename Map
, typename Lambda
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename proto::detail::uncvref<
- typename result_of::actions<Context>::type
- >::type
- actions_type;
+
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef
- typename proto::detail::uncvref<
- typename proto::result_of::value<Map>::type
- >::type
- map_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
locals_type locals = initialize_locals(proto::value(vars), ctx);
return
expression::
lambda<env_type, locals_type, Map, Lambda>::
make(phoenix::env(ctx), locals, map, lambda);
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda_actor, Dummy>
: call<lambda_actor_eval, Dummy>
{};
template <typename Locals = void, typename Map = void, typename Dummy = void>
struct lambda_actor_gen;
template <>
struct lambda_actor_gen<void, void, void>
{
template <typename Expr>
typename expression::lambda_actor<vector0<>, detail::map_local_index_to_tuple<>, Expr>::type const
operator[](Expr const & expr) const
{
typedef vector0<> locals_type;
typedef detail::map_local_index_to_tuple<> map_type;
return expression::lambda_actor<locals_type, map_type, Expr>::make(locals_type(), map_type(), expr);
}
};
template <typename Locals, typename Map>
struct lambda_actor_gen<Locals, Map>
{
- lambda_actor_gen(Locals const & locals)
- : locals(locals)
+ lambda_actor_gen(Locals const & locals_)
+ : locals(locals_)
{}
lambda_actor_gen(lambda_actor_gen const & o)
: locals(o.locals)
{};
template <typename Expr>
typename expression::lambda_actor<
Locals
, Map
, Expr
>::type const
operator[](Expr const & expr) const
{
return expression::lambda_actor<Locals, Map, Expr>::make(locals, Map(), expr);
}
Locals locals;
};
struct lambda_local_gen
: lambda_actor_gen<>
{
lambda_actor_gen<> const
operator()() const
{
return lambda_actor_gen<>();
}
template <typename A0>
lambda_actor_gen<
vector1<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type>
, detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type>
diff --git a/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_50.hpp b/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_50.hpp
index 30f5fef..2128eb4 100644
--- a/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_50.hpp
+++ b/3rdParty/Boost/src/boost/phoenix/scope/preprocessed/lambda_50.hpp
@@ -20,120 +20,120 @@ namespace boost { namespace phoenix
, typename OuterEnv
, typename Locals
, typename Map
, typename Lambda
, typename Context
>
struct result<This(OuterEnv, Locals, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename result_of::eval<
- Lambda
- , typename result_of::context<
- scoped_environment<
- env_type
- , outer_env_type
- , locals_type
- , map_type
- >
- , typename result_of::actions<
- Context
- >::type
- >::type
- >::type
- type;
+ typedef
+ typename result_of::eval<
+ Lambda
+ , typename result_of::context<
+ scoped_environment<
+ env_type
+ , outer_env_type
+ , locals_type
+ , map_type
+ >
+ , typename result_of::actions<
+ Context
+ >::type
+ >::type
+ >::type
+ type;
};
template <typename OuterEnv, typename Locals, typename Map, typename Lambda, typename Context>
typename result<lambda_eval(OuterEnv const &, Locals const &, Map const &, Lambda const &, Context const &)>::type
operator()(OuterEnv const & outer_env, Locals const & locals, Map const &, Lambda const & lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
OuterEnv
>::type
>::type
outer_env_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Locals
>::type
>::type
locals_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<
Map
>::type
>::type
map_type;
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- scoped_environment<
+ scoped_environment<
env_type
, outer_env_type
, locals_type
, map_type
>
env(phoenix::env(ctx), proto::value(outer_env), proto::value(locals));
return eval(lambda, phoenix::context(env, phoenix::actions(ctx)));
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda, Dummy>
: call<lambda_eval, Dummy>
{};
template <typename Dummy>
struct is_nullary::when<rule::lambda, Dummy>
: proto::call<
evaluator(
proto::_child_c<3>
, proto::call<
functional::context(
proto::make<
mpl::true_()
>
, proto::make<
detail::scope_is_nullary_actions()
>
)
>
, proto::make<
proto::empty_env()
>
)
>
{};
template <typename Dummy>
@@ -163,154 +163,145 @@ namespace boost { namespace phoenix
evaluator(
proto::_
, _context
, proto::make<proto::empty_env()>
)
>
>()
>
>
>
>
{};
struct lambda_actor_eval
{
template <typename Sig>
struct result;
template <typename This, typename Vars, typename Map, typename Lambda, typename Context>
struct result<This(Vars, Map, Lambda, Context)>
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
typedef
typename proto::detail::uncvref<
typename result_of::actions<Context>::type
>::type
actions_type;
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
typedef
typename expression::lambda<
env_type
, locals_type
, Map
, Lambda
>::type const
type;
};
template <
typename Vars
, typename Map
, typename Lambda
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
typename result_of::env<Context>::type
>::type
env_type;
- typedef
- typename proto::detail::uncvref<
- typename result_of::actions<Context>::type
- >::type
- actions_type;
+
typedef
typename proto::detail::uncvref<
typename proto::result_of::value<Vars>::type
>::type
vars_type;
- typedef
- typename proto::detail::uncvref<
- typename proto::result_of::value<Map>::type
- >::type
- map_type;
- typedef typename
+ typedef typename
detail::result_of::initialize_locals<
vars_type
, Context
>::type
locals_type;
locals_type locals = initialize_locals(proto::value(vars), ctx);
return
expression::
lambda<env_type, locals_type, Map, Lambda>::
make(phoenix::env(ctx), locals, map, lambda);
}
};
template <typename Dummy>
struct default_actions::when<rule::lambda_actor, Dummy>
: call<lambda_actor_eval, Dummy>
{};
template <typename Locals = void, typename Map = void, typename Dummy = void>
struct lambda_actor_gen;
template <>
struct lambda_actor_gen<void, void, void>
{
template <typename Expr>
typename expression::lambda_actor<vector0<>, detail::map_local_index_to_tuple<>, Expr>::type const
operator[](Expr const & expr) const
{
typedef vector0<> locals_type;
typedef detail::map_local_index_to_tuple<> map_type;
return expression::lambda_actor<locals_type, map_type, Expr>::make(locals_type(), map_type(), expr);
}
};
template <typename Locals, typename Map>
struct lambda_actor_gen<Locals, Map>
{
- lambda_actor_gen(Locals const & locals)
- : locals(locals)
+ lambda_actor_gen(Locals const & locals_)
+ : locals(locals_)
{}
lambda_actor_gen(lambda_actor_gen const & o)
: locals(o.locals)
{};
template <typename Expr>
typename expression::lambda_actor<
Locals
, Map
, Expr
>::type const
operator[](Expr const & expr) const
{
return expression::lambda_actor<Locals, Map, Expr>::make(locals, Map(), expr);
}
Locals locals;
};
struct lambda_local_gen
: lambda_actor_gen<>
{
lambda_actor_gen<> const
operator()() const
{
return lambda_actor_gen<>();
}
template <typename A0>
lambda_actor_gen<
vector1<typename proto::detail::uncvref< typename proto::result_of::child_c< A0 , 1 >::type >::type>
, detail::map_local_index_to_tuple<typename proto::detail::uncvref< typename proto::result_of::value< typename proto::result_of::child_c< A0 , 0 >::type >::type >::type>
diff --git a/3rdParty/Boost/src/boost/phoenix/scope/scoped_environment.hpp b/3rdParty/Boost/src/boost/phoenix/scope/scoped_environment.hpp
index a53b4e5..5fcb245 100644
--- a/3rdParty/Boost/src/boost/phoenix/scope/scoped_environment.hpp
+++ b/3rdParty/Boost/src/boost/phoenix/scope/scoped_environment.hpp
@@ -3,84 +3,84 @@
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)
==============================================================================*/
#ifndef BOOST_PHOENIX_SCOPE_SCOPED_ENVIRONMENT_HPP
#define BOOST_PHOENIX_SCOPE_SCOPED_ENVIRONMENT_HPP
#include <boost/phoenix/core/limits.hpp>
#include <boost/mpl/int.hpp>
#include <boost/fusion/sequence/sequence_facade.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
#include <boost/fusion/sequence/intrinsic/value_at.hpp>
#include <boost/fusion/sequence/intrinsic/at.hpp>
#include <boost/fusion/support/category_of.hpp>
#include <boost/fusion/include/pop_front.hpp>
#include <boost/utility/result_of.hpp>
namespace boost { namespace phoenix
{
template<typename Env, typename OuterEnv, typename Locals, typename Map>
struct scoped_environment
: fusion::sequence_facade<
scoped_environment<Env, OuterEnv, Locals, Map>
, fusion::random_access_traversal_tag
>
{
typedef Env env_type;
typedef OuterEnv outer_env_type;
typedef Locals locals_type;
typedef Map map_type;
scoped_environment(
- Env const & env
- , OuterEnv const &outer_env
- , Locals const &locals
+ Env const & env_
+ , OuterEnv const &outer_env_
+ , Locals const &locals_
)
- : env(env)
- , outer_env(outer_env)
- , locals(locals)
+ : env(env_)
+ , outer_env(outer_env_)
+ , locals(locals_)
{}
- scoped_environment(scoped_environment const & o)
- : env(o.env)
+ scoped_environment(scoped_environment const & o)
+ : env(o.env)
, outer_env(o.outer_env)
- , locals(o.locals)
- {};
+ , locals(o.locals)
+ {};
Env const & env;
OuterEnv const & outer_env;
Locals const & locals;
typedef typename
fusion::result_of::pop_front<
typename add_const<
typename proto::detail::uncvref<Env>::type
>::type
>::type
args_type;
args_type args() const
{
return fusion::pop_front(env);
}
#define BOOST_PHOENIX_ADAPT_SCOPED_ENVIRONMENT(INTRINSIC) \
template <typename Seq> \
struct INTRINSIC \
{ \
typedef \
typename fusion::result_of::INTRINSIC< \
typename mpl::eval_if_c< \
is_const< \
typename remove_reference< \
typename Seq::env_type \
>::type \
>::value \
, add_const< \
typename proto::detail::uncvref< \
typename Seq::env_type \
>::type \
> \