|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r68750 - in sandbox/SOC/2010/phoenix3: boost/phoenix/core boost/phoenix/core/detail boost/phoenix/scope boost/phoenix/scope/detail boost/phoenix/statement libs/phoenix/test/core libs/phoenix/test/scope
From: thom.heller_at_[hidden]
Date: 2011-02-09 15:55:09
Author: theller
Date: 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
New Revision: 68750
URL: http://svn.boost.org/trac/boost/changeset/68750
Log:
improved compile times, a bit
Text files modified:
sandbox/SOC/2010/phoenix3/boost/phoenix/core/actor.hpp | 18 ++---
sandbox/SOC/2010/phoenix3/boost/phoenix/core/arity.hpp | 5 +
sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_operator.hpp | 75 ++++++++++++---------------
sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_result_of.hpp | 10 +-
sandbox/SOC/2010/phoenix3/boost/phoenix/core/environment.hpp | 32 +++++++----
sandbox/SOC/2010/phoenix3/boost/phoenix/core/is_nullary.hpp | 108 ++++++++++++++++++++++++++++++----------
sandbox/SOC/2010/phoenix3/boost/phoenix/core/limits.hpp | 27 ----------
sandbox/SOC/2010/phoenix3/boost/phoenix/core/terminal.hpp | 2
sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/dynamic.hpp | 7 +-
sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_gen.hpp | 4
sandbox/SOC/2010/phoenix3/boost/phoenix/scope/lambda.hpp | 4 -
sandbox/SOC/2010/phoenix3/boost/phoenix/scope/let.hpp | 10 +--
sandbox/SOC/2010/phoenix3/boost/phoenix/scope/scoped_environment.hpp | 5 +
sandbox/SOC/2010/phoenix3/boost/phoenix/statement/switch.hpp | 10 +--
sandbox/SOC/2010/phoenix3/libs/phoenix/test/core/primitives_tests.cpp | 6 +
sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/dynamic_tests.cpp | 2
16 files changed, 174 insertions(+), 151 deletions(-)
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/actor.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/actor.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/actor.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -13,12 +13,12 @@
#include <boost/mpl/identity.hpp>
#include <boost/mpl/eval_if.hpp>
-#include <boost/fusion/container/generation/make_vector.hpp>
#include <boost/phoenix/core/domain.hpp>
#include <boost/phoenix/core/environment.hpp>
#include <boost/phoenix/core/is_nullary.hpp>
#include <boost/phoenix/core/meta_grammar.hpp>
#include <boost/phoenix/support/iterate.hpp>
+#include <boost/phoenix/support/vector.hpp>
#include <boost/proto/extends.hpp>
#include <boost/utility/result_of.hpp>
#include <boost/mpl/void.hpp>
@@ -129,21 +129,19 @@
typename result_of::actor<Expr>::type
operator()()
{
- typedef fusion::vector1<const actor<Expr> *> args_type;
- args_type args(this);
- fusion::vector2<args_type&, default_actions> env(args, default_actions());
+ typedef vector1<const actor<Expr> *> env_type;
+ env_type env = {this};
- return eval(*this, env);
+ return eval(*this, context(env, default_actions()));
}
typename result_of::actor<Expr>::type
operator()() const
{
- typedef fusion::vector1<const actor<Expr> *> args_type;
- args_type args(this);
- fusion::vector2<args_type&, default_actions> env(args, default_actions());
-
- return eval(*this, env);
+ typedef vector1<const actor<Expr> *> env_type;
+ env_type env = {this};
+
+ return eval(*this, context(env, default_actions()));
}
// Bring in the rest
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/arity.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/arity.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/arity.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -14,6 +14,7 @@
#include <boost/mpl/int.hpp>
#include <boost/phoenix/core/meta_grammar.hpp>
#include <boost/phoenix/core/terminal_fwd.hpp>
+#include <boost/phoenix/support/vector.hpp>
#include <boost/proto/transform/fold.hpp>
namespace boost { namespace phoenix
@@ -33,7 +34,7 @@
: mpl::int_<
evaluator::impl<
Expr const&
- , fusion::vector2<
+ , vector2<
mpl::int_<0>
, boost::phoenix::arity
>&
@@ -52,7 +53,7 @@
, mpl::int_<0>
, mpl::max<
proto::_state
- , evaluator(proto::_, _context)
+ , evaluator(proto::_, functional::context(_env, _actions))
>()
>
{};
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_operator.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_operator.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_operator.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -1,4 +1,5 @@
+/*
#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
#ifndef PHOENIX_CORE_DETAIL_ACTOR_OPERATOR_HPP
#define PHOENIX_CORE_DETAIL_ACTOR_OPERATOR_HPP
@@ -8,7 +9,7 @@
#include <boost/phoenix/core/detail/preprocessed/actor_operator.hpp>
#endif
-#else
+#else*/
#if !PHOENIX_IS_ITERATING
@@ -57,15 +58,13 @@
operator()(PHOENIX_A_ref_a)
{
typedef
- BOOST_PP_CAT(fusion::vector, BOOST_PP_INC(PHOENIX_ITERATION))<
+ BOOST_PP_CAT(vector, BOOST_PP_INC(PHOENIX_ITERATION))<
const actor<Expr> *, PHOENIX_A_ref
>
- args_type;
- args_type args(this, PHOENIX_a);
- fusion::vector2<args_type&, default_actions>
- env(args, default_actions());
-
- return eval(*this, env);
+ env_type;
+ env_type env = {this, PHOENIX_a};
+
+ return eval(*this, context(env, default_actions()));
}
template <PHOENIX_typename_A>
@@ -73,15 +72,13 @@
operator()(PHOENIX_A_ref_a) const
{
typedef
- BOOST_PP_CAT(fusion::vector, BOOST_PP_INC(PHOENIX_ITERATION))<
+ BOOST_PP_CAT(vector, BOOST_PP_INC(PHOENIX_ITERATION))<
const actor<Expr> *, PHOENIX_A_ref
>
- args_type;
- args_type args(this, PHOENIX_a);
- fusion::vector2<args_type&, default_actions>
- env(args, default_actions());
+ env_type;
+ env_type env = {this, PHOENIX_a};
- return eval(*this, env);
+ return eval(*this, context(env, default_actions()));
}
template <PHOENIX_typename_A>
@@ -89,15 +86,13 @@
operator()(PHOENIX_A_const_ref_a)
{
typedef
- BOOST_PP_CAT(fusion::vector, BOOST_PP_INC(PHOENIX_ITERATION))<
+ BOOST_PP_CAT(vector, BOOST_PP_INC(PHOENIX_ITERATION))<
const actor<Expr> *, PHOENIX_A_const_ref
>
- args_type;
- args_type args(this, PHOENIX_a);
- fusion::vector2<args_type&, default_actions>
- env(args, default_actions());
+ env_type;
+ env_type env = {this, PHOENIX_a};
- return eval(*this, env);
+ return eval(*this, context(env, default_actions()));
}
template <PHOENIX_typename_A>
@@ -105,15 +100,13 @@
operator()(PHOENIX_A_const_ref_a) const
{
typedef
- BOOST_PP_CAT(fusion::vector, BOOST_PP_INC(PHOENIX_ITERATION))<
+ BOOST_PP_CAT(vector, BOOST_PP_INC(PHOENIX_ITERATION))<
const actor<Expr> *, PHOENIX_A_const_ref
>
- args_type;
- args_type args(this, PHOENIX_a);
- fusion::vector2<args_type&, default_actions>
- env(args, default_actions());
-
- return eval(*this, env);
+ env_type;
+ env_type env = {this, PHOENIX_a};
+
+ return eval(*this, context(env, default_actions()));
}
#else
@@ -131,14 +124,13 @@
operator()(PHOENIX_PERM_A_a(I)) const \
{ \
typedef \
- typename fusion::result_of::make_vector<const actor<Expr> *, PHOENIX_PERM_A(I)>::type\
- args_type; \
- args_type args(this, PHOENIX_a); \
- fusion::vector2< \
- args_type&, default_actions \
- > env(args, default_actions()); \
+ BOOST_PP_CAT(vector, BOOST_PP_INC(PHOENIX_ITERATION))< \
+ const actor<Expr> *, PHOENIX_PERM_A(I) \
+ > \
+ env_type; \
+ env_type env = {this, PHOENIX_a}; \
\
- return eval(*this, env); \
+ return eval(*this, context(env, default_actions())); \
} \
\
template <PHOENIX_typename_A> \
@@ -146,14 +138,13 @@
operator()(PHOENIX_PERM_A_a(I)) \
{ \
typedef \
- typename fusion::result_of::make_vector<const actor<Expr> *,PHOENIX_PERM_A(I)>::type\
- args_type; \
- args_type args(this, PHOENIX_a); \
- fusion::vector2< \
- args_type&, default_actions \
- > env(args, default_actions()); \
+ BOOST_PP_CAT(vector, BOOST_PP_INC(PHOENIX_ITERATION))< \
+ const actor<Expr> *, PHOENIX_PERM_A(I) \
+ > \
+ env_type; \
+ env_type env = {this, PHOENIX_a}; \
\
- return eval(*this, env); \
+ return eval(*this, context(env, default_actions())); \
} \
/**/
@@ -165,4 +156,4 @@
#endif
-#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES
+//#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_result_of.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_result_of.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/detail/actor_result_of.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -48,8 +48,8 @@
typedef
typename evaluator::impl<
Expr const&
- , fusion::vector2<
- fusion::vector1<const ::boost::phoenix::actor<Expr> *> &
+ , vector2<
+ vector1<const ::boost::phoenix::actor<Expr> *> &
, default_actions
> const &
, int
@@ -63,7 +63,7 @@
typedef
// avoid calling result_of::actor when this is false
typename mpl::eval_if<
- typename result_of::is_nullary<Expr>::type
+ result_of::is_nullary<Expr>
, nullary_actor_result<Expr>
, mpl::identity<detail::error_expecting_arguments>
>::type
@@ -92,9 +92,9 @@
typename phoenix::evaluator::
impl<
Expr const&
- , fusion::vector2<
+ , vector2<
BOOST_PP_CAT(
- fusion::vector
+ vector
, BOOST_PP_INC(PHOENIX_ITERATION)
)<const ::boost::phoenix::actor<Expr> *, PHOENIX_A> &
, default_actions
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/environment.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/environment.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/environment.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -11,6 +11,7 @@
#include <boost/phoenix/core/limits.hpp>
#include <boost/fusion/sequence/intrinsic/at.hpp>
#include <boost/fusion/support/is_sequence.hpp>
+#include <boost/phoenix/support/vector.hpp>
#include <boost/proto/transform/impl.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/utility/result_of.hpp>
@@ -24,7 +25,7 @@
template <typename Env, typename Actions>
struct context
{
- typedef fusion::vector2<Env, Actions> type;
+ typedef vector2<Env, Actions> type;
};
template <typename Context>
@@ -83,28 +84,32 @@
typename result_of::context<Env &, Actions &>::type
operator()(Env & env, Actions & actions) const
{
- return fusion::vector2<Env &, Actions &>(env, actions);
+ vector2<Env &, Actions &> e = {env, actions};
+ return e;
}
template <typename Env, typename Actions>
typename result_of::context<Env const &, Actions &>::type
operator()(Env const & env, Actions & actions) const
{
- return fusion::vector2<Env const &, Actions &>(env, actions);
+ vector2<Env const &, Actions &> e = {env, actions};
+ return e;
}
template <typename Env, typename Actions>
typename result_of::context<Env &, Actions const &>::type
operator()(Env & env, Actions const & actions) const
{
- return fusion::vector2<Env &, Actions const &>(env, actions);
+ vector2<Env &, Actions const &> e = {env, actions};
+ return e;
}
template <typename Env, typename Actions>
typename result_of::context<Env const &, Actions const &>::type
operator()(Env const & env, Actions const & actions) const
{
- return fusion::vector2<Env const &, Actions const &>(env, actions);
+ vector2<Env const&, Actions const &> e = {env, actions};
+ return e;
}
};
@@ -181,7 +186,7 @@
struct impl
: proto::transform_impl<Expr, State, Data>
{
- typedef fusion::vector2<State, Data> result_type;
+ typedef vector2<State, Data> result_type;
result_type operator()(
typename impl::expr_param
@@ -189,7 +194,8 @@
, typename impl::data_param d
) const
{
- return fusion::vector2<State, Data>(s, d);
+ vector2<State, Data> e = {s, d};
+ return e;
}
};
};
@@ -198,28 +204,32 @@
typename result_of::context<Env const &, Actions const&>::type const
context(Env const& env, Actions const& actions)
{
- return fusion::vector2<Env const &, Actions const &>(env, actions);
+ vector2<Env const&, Actions const &> e = {env, actions};
+ return e;
}
template <typename Env, typename Actions>
typename result_of::context<Env &, Actions const&>::type const
context(Env & env, Actions const& actions)
{
- return fusion::vector2<Env &, Actions const &>(env, actions);
+ vector2<Env &, Actions const &> e = {env, actions};
+ return e;
}
template <typename Env, typename Actions>
typename result_of::context<Env const &, Actions &>::type const
context(Env const& env, Actions & actions)
{
- return fusion::vector2<Env const &, Actions &>(env, actions);
+ vector2<Env const&, Actions &> e = {env, actions};
+ return e;
}
template <typename Env, typename Actions>
typename result_of::context<Env &, Actions &>::type const
context(Env & env, Actions & actions)
{
- return fusion::vector2<Env &, Actions &>(env, actions);
+ vector2<Env &, Actions &> e = {env, actions};
+ return e;
}
struct _env
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/is_nullary.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/is_nullary.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/is_nullary.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -14,6 +14,7 @@
#include <boost/phoenix/core/is_actor.hpp>
#include <boost/phoenix/core/meta_grammar.hpp>
#include <boost/phoenix/core/terminal_fwd.hpp>
+#include <boost/phoenix/support/vector.hpp>
#include <boost/proto/transform/fold.hpp>
#include <boost/proto/transform/lazy.hpp>
@@ -34,7 +35,7 @@
, mpl::true_()
, mpl::and_<
proto::_state
- , evaluator(proto::_, _context, int())
+ , evaluator(proto::_, _context)
>()
>
{};
@@ -42,40 +43,83 @@
template <typename Dummy>
struct is_nullary::when<rule::argument, Dummy>
- : proto::make<mpl::false_()>
- {};
+ {
+ BOOST_PROTO_TRANSFORM(is_nullary::when<rule::argument>)
+ template <typename Expr, typename State, typename Data>
+ struct impl
+ {
+ typedef mpl::false_ result_type;
+ };
+ };
template <typename Dummy>
struct is_nullary::when<rule::custom_terminal, Dummy>
- : proto::lazy<
- result_of::is_nullary<custom_terminal<proto::_value> >(
- proto::_
- , _context
- )
+ {
+ BOOST_PROTO_TRANSFORM(is_nullary::when<rule::custom_terminal>)
+
+ template <typename Expr, typename State, typename Data>
+ struct defer_result
+ : mpl::identity<
+ typename result_of::is_nullary<
+ custom_terminal<
+ typename proto::detail::uncvref<
+ typename proto::result_of::value<Expr>::type
+ >::type
+ >
+ >::template impl<
+ typename proto::result_of::value<Expr>::type
+ , State
+ , Data
+ >::result_type
>
- {};
+ {};
+
+ template <typename Expr, typename State, typename Data>
+ struct impl
+ {
+ typedef
+ typename proto::detail::uncvref<
+ typename proto::result_of::value<Expr>::type
+ >::type value_type;
+
+ typedef typename result_of::is_nullary<custom_terminal<value_type> > is_nullary_trait;
+
+
+
+ typedef
+ typename mpl::eval_if<
+ proto::is_transform<is_nullary_trait>
+ , defer_result<Expr, State, Data>
+ , is_nullary_trait
+ >::type
+ result_type;
+ };
+ };
template <typename Dummy>
struct is_nullary::when<rule::terminal, Dummy>
- : proto::make<mpl::true_()>
- {};
+ {
+ BOOST_PROTO_TRANSFORM(is_nullary::when<rule::terminal>)
+ template <typename Expr, typename State, typename Data>
+ struct impl
+ {
+ typedef mpl::true_ result_type;
+ };
+ };
namespace result_of
{
template <typename Expr, typename Enable>
struct is_nullary
- {
- typedef
- typename boost::phoenix::evaluator::impl<
- Expr const &
- , fusion::vector2<
- mpl::true_
- , boost::phoenix::is_nullary
- >
- , int
- >::result_type
- type;
- };
+ : boost::phoenix::evaluator::impl<
+ Expr const &
+ , vector2<
+ mpl::true_
+ , boost::phoenix::is_nullary
+ >
+ , int
+ >::result_type
+ {};
template <typename T>
struct is_nullary<T & >
@@ -93,13 +137,23 @@
{};
template <typename T>
- struct is_nullary<custom_terminal<T>, typename disable_if<is_actor<T> >::type>
- : proto::make<mpl::true_()>
+ struct is_nullary<custom_terminal<T> >
+ : mpl::true_
+ {};
+
+ template <typename T>
+ struct is_nullary<custom_terminal<actor<T> const &> >
+ : evaluator
+ {};
+
+ template <typename T>
+ struct is_nullary<custom_terminal<actor<T> &> >
+ : evaluator
{};
template <typename T>
- struct is_nullary<custom_terminal<T>, typename enable_if<is_actor<T> >::type>
- : proto::call<evaluator(proto::_value, _context, int())>
+ struct is_nullary<custom_terminal<actor<T> > >
+ : evaluator
{};
}
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/limits.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/limits.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/limits.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -13,8 +13,6 @@
#include <boost/preprocessor/stringize.hpp>
#include <boost/phoenix/support/preprocessor/round.hpp>
-
-
#if !defined(PHOENIX_LIMIT)
# define PHOENIX_LIMIT 10
#elif (PHOENIX_LIMIT < 5)
@@ -93,12 +91,6 @@
# define PHOENIX_DONT_USE_PREPROCESSED_FILES
#endif
-#if !defined(FUSION_MAX_VECTOR_SIZE)
-# define FUSION_MAX_VECTOR_SIZE BOOST_PP_INC(BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT))
-#elif (FUSION_MAX_VECTOR_SIZE < BOOST_PP_INC(BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT)))
-# error "FUSION_MAX_VECTOR_SIZE < BOOST_PP_INC(BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT))"
-#endif
-
#if !defined(BOOST_PROTO_MAX_ARITY)
# define BOOST_PROTO_MAX_ARITY BOOST_PP_INC(PHOENIX_COMPOSITE_LIMIT)
# if defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
@@ -120,23 +112,4 @@
// this include will set the limit for the proto expression arity
#include <boost/proto/proto_fwd.hpp>
-// this include will bring in mpl::vectorN and
-// fusion::vectorN where N is BOOST_PHOENIX_PP_ROUND_UP(PHOENIX_LIMIT)
-#include <boost/fusion/container/vector/vector10.hpp>
-#if FUSION_MAX_VECTOR_SIZE > 10
-#include <boost/fusion/container/vector/vector20.hpp>
-#endif
-#if FUSION_MAX_VECTOR_SIZE > 20
-#include <boost/fusion/container/vector/vector30.hpp>
-#endif
-#if FUSION_MAX_VECTOR_SIZE > 30
-#include <boost/fusion/container/vector/vector40.hpp>
-#endif
-#if FUSION_MAX_VECTOR_SIZE > 40
-#include <boost/fusion/container/vector/vector50.hpp>
-#endif
-#if FUSION_MAX_VECTOR_SIZE > 50
-#error "FUSION_MAX_VECTOR_SIZE too high!"
-#endif
-
#endif
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/core/terminal.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/core/terminal.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/core/terminal.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -51,7 +51,7 @@
template <typename Dummy>
struct default_actions::when<rule::custom_terminal, Dummy>
- : proto::lazy<custom_terminal<proto::_value>(proto::_value, _context)>
+ : proto::lazy<custom_terminal<proto::_value>(proto::_value, functional::context(_env, _actions))>
{};
namespace detail
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/dynamic.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/dynamic.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/dynamic.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -1,4 +1,5 @@
+/*
#if !defined(PHOENIX_DONT_USE_PREPROCESSED_FILES)
#ifndef PHOENIX_SCOPE_DETAIL_DYNAMIC_HPP
#define PHOENIX_SCOPE_DETAIL_DYNAMIC_HPP
@@ -8,7 +9,7 @@
#include <boost/phoenix/scope/detail/preprocessed/dynamic.hpp>
#endif
-#else
+#else*/
#if !PHOENIX_IS_ITERATING
@@ -61,7 +62,7 @@
struct dynamic<PHOENIX_A> : noncopyable
{
typedef
- BOOST_PP_CAT(fusion::vector, PHOENIX_ITERATION)<PHOENIX_A>
+ BOOST_PP_CAT(vector, PHOENIX_ITERATION)<PHOENIX_A>
tuple_type;
typedef
dynamic<PHOENIX_A>
@@ -91,4 +92,4 @@
#endif
-#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES
+//#endif // PHOENIX_DONT_USE_PREPROCESSED_FILES
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_gen.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_gen.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/detail/local_gen.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -70,14 +70,14 @@
template <PHOENIX_typename_A>
PHOENIX_LOCAL_GEN_NAME<
- BOOST_PP_CAT(fusion::vector, PHOENIX_ITERATION)<PHOENIX_LOCAL_GEN_ACTOR_TYPES>
+ BOOST_PP_CAT(vector, PHOENIX_ITERATION)<PHOENIX_LOCAL_GEN_ACTOR_TYPES>
, detail::map_local_index_to_tuple<BOOST_PP_REPEAT(PHOENIX_ITERATION, PHOENIX_LOCAL_GEN_KEY_TYPES, _)>
> const
operator()(PHOENIX_A_const_ref_a) const
{
return
BOOST_PP_CAT(
- fusion::vector, PHOENIX_ITERATION)<BOOST_PP_REPEAT(PHOENIX_ITERATION, PHOENIX_LOCAL_GEN_ACTOR_TYPES_I, _)>(BOOST_PP_REPEAT(PHOENIX_ITERATION, PHOENIX_LOCAL_GEN_ACTOR, _));
+ vector, PHOENIX_ITERATION)<BOOST_PP_REPEAT(PHOENIX_ITERATION, PHOENIX_LOCAL_GEN_ACTOR_TYPES_I, _)>(BOOST_PP_REPEAT(PHOENIX_ITERATION, PHOENIX_LOCAL_GEN_ACTOR, _));
}
#endif
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/lambda.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/lambda.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/lambda.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -117,9 +117,7 @@
, proto::value(locals)
);
- typename result_of::context<scoped_env_type &, actions_type>::type
- new_ctx(scoped_env, actions(ctx));
- return eval(lambda, new_ctx);
+ return eval(lambda, context(scoped_env, actions(ctx)));
}
};
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/let.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/let.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/let.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -17,6 +17,7 @@
#include <boost/phoenix/scope/scoped_environment.hpp>
#include <boost/phoenix/scope/local_variable.hpp>
#include <boost/phoenix/support/iterate.hpp>
+#include <boost/phoenix/support/vector.hpp>
PHOENIX_DEFINE_EXPRESSION(
(boost)(phoenix)(let)
@@ -102,12 +103,7 @@
, l
);
- typename result_of::context<
- scoped_env_type &
- , actions_type
- >::type new_ctx(scoped_env, actions(ctx));
-
- return eval(let, new_ctx);
+ return eval(let, context(scoped_env, actions(ctx)));
}
};
@@ -171,7 +167,7 @@
detail::local_var_def_is_nullary<proto::_value(proto::_child_c<0>), _context>()
, evaluator(
proto::_child_c<1>
- , fusion::vector2<
+ , vector2<
mpl::true_
, detail::scope_is_nullary_actions
>()
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/scope/scoped_environment.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/scope/scoped_environment.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/scope/scoped_environment.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -16,6 +16,7 @@
#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/utility/result_of.hpp>
namespace boost { namespace phoenix
@@ -87,14 +88,14 @@
struct value_at
{
typedef
- typename fusion::result_of::value_at<typename Seq::env_type, N>::type
+ typename fusion::result_of::value_at<typename proto::detail::uncvref<typename Seq::env_type>::type, N>::type
type;
};
template <typename Seq, typename N>
struct at
{
- typedef typename fusion::result_of::at<typename Seq::env_type, N>::type type;
+ typedef typename fusion::result_of::at<typename proto::detail::uncvref<typename Seq::env_type>::type, N>::type type;
static type call(Seq & seq)
{
Modified: sandbox/SOC/2010/phoenix3/boost/phoenix/statement/switch.hpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/boost/phoenix/statement/switch.hpp (original)
+++ sandbox/SOC/2010/phoenix3/boost/phoenix/statement/switch.hpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -16,8 +16,6 @@
#include <boost/phoenix/support/iterate.hpp>
#include <boost/proto/make_expr.hpp>
-#include <boost/fusion/include/as_vector.hpp>
-
PHOENIX_DEFINE_EXPRESSION(
(boost)(phoenix)(switch_case)
, (proto::terminal<proto::_>)
@@ -112,11 +110,9 @@
template <typename Dummy>
struct is_nullary::when<rule::switch_, Dummy>
- : proto::make<
- mpl::and_<
- evaluator(proto::_child_c<0>, _context)
- , detail::switch_case_is_nullary(proto::_child_c<1>, _context)
- >()
+ : proto::and_<
+ evaluator(proto::_child_c<0>, _context)
+ , detail::switch_case_is_nullary(proto::_child_c<1>, _context)
>
{};
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/core/primitives_tests.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/core/primitives_tests.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/core/primitives_tests.cpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -7,7 +7,9 @@
#include <iostream>
#include <string>
-#include <boost/phoenix/core.hpp>
+#include <boost/phoenix/core/argument.hpp>
+#include <boost/phoenix/core/reference.hpp>
+#include <boost/phoenix/core/value.hpp>
#include <boost/detail/lightweight_test.hpp>
using boost::phoenix::cref;
@@ -24,6 +26,8 @@
int i1 = 1, i2 = 2, i = 4;
const char* s2 = "2";
+
+
///////////////////////////////////////////////////////////////////////////
//
// Values, references and arguments
Modified: sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/dynamic_tests.cpp
==============================================================================
--- sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/dynamic_tests.cpp (original)
+++ sandbox/SOC/2010/phoenix3/libs/phoenix/test/scope/dynamic_tests.cpp 2011-02-09 15:55:05 EST (Wed, 09 Feb 2011)
@@ -53,7 +53,7 @@
(clos.real = clos.num * 1e30)();
{ // Third stack frame
- boost::fusion::vector3<int, char const*, double> init(-1, "Direct Init ", 3.14);
+ boost::phoenix::vector3<int, std::string, double> init = {-1, "Direct Init ", 3.14};
dynamic_frame<my_dynamic::self_type> frame(clos, init);
(std::cout << clos.message << clos.num << ", " << clos.real << '\n')();
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk