diff --git a/include/boost/phoenix/core/actor.hpp b/include/boost/phoenix/core/actor.hpp index 3a2b215..bf26b30 100644 --- a/include/boost/phoenix/core/actor.hpp +++ b/include/boost/phoenix/core/actor.hpp @@ -380,7 +380,7 @@ namespace boost { namespace phoenix template typename boost::result_of< eval_grammar(A0 const&, typename basic_environment::type&) - >::type + >::type operator()(Env& env, A0 const& a0, A1 const& a1, A2 const& a2) const { typename basic_environment::type args(eval(a1, env), eval(a2, env)); diff --git a/include/boost/phoenix/core/environment.hpp b/include/boost/phoenix/core/environment.hpp index f3de91c..9a70e83 100644 --- a/include/boost/phoenix/core/environment.hpp +++ b/include/boost/phoenix/core/environment.hpp @@ -8,7 +8,6 @@ #define PHOENIX_CORE_ENVIRONMENT_HPP #include -#include #include #include #include diff --git a/include/boost/phoenix/core/limits.hpp b/include/boost/phoenix/core/limits.hpp index 2a6b7a5..b067ba2 100644 --- a/include/boost/phoenix/core/limits.hpp +++ b/include/boost/phoenix/core/limits.hpp @@ -80,11 +80,22 @@ // this include will bring in mpl::vectorN and // fusion::vectorN where N is PHOENIX_LIMIT -#include - -// for some reason, this must be included now to make -// detail/type_deduction.hpp compile. $$$ TODO: Investigate further $$$ -#include +#include +#if PHOENIX_LIMIT > 10 +#include +#endif +#if PHOENIX_LIMIT > 20 +#include +#endif +#if PHOENIX_LIMIT > 30 +#include +#endif +#if PHOENIX_LIMIT > 40 +#include +#endif +#if PHOENIX_LIMIT > 50 +#error "PHOENIX_LIMIT too high!" +#endif #if !defined(BOOST_PROTO_MAX_ARITY) #define BOOST_PROTO_MAX_ARITY BOOST_PP_INC(PHOENIX_COMPOSITE_LIMIT)