38 changes: 19 additions & 19 deletions include/boost/phoenix/core/detail/preprocessed/function_eval_20.hpp

Large diffs are not rendered by default.

58 changes: 29 additions & 29 deletions include/boost/phoenix/core/detail/preprocessed/function_eval_30.hpp

Large diffs are not rendered by default.

78 changes: 39 additions & 39 deletions include/boost/phoenix/core/detail/preprocessed/function_eval_40.hpp

Large diffs are not rendered by default.

98 changes: 49 additions & 49 deletions include/boost/phoenix/core/detail/preprocessed/function_eval_50.hpp

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion include/boost/phoenix/core/expression.hpp
Expand Up @@ -116,7 +116,7 @@ namespace boost { namespace phoenix

template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down
20 changes: 10 additions & 10 deletions include/boost/phoenix/core/preprocessed/expression_10.hpp
Expand Up @@ -58,7 +58,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -100,7 +100,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -142,7 +142,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -184,7 +184,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -226,7 +226,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -268,7 +268,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -310,7 +310,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -352,7 +352,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -394,7 +394,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -436,7 +436,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down
40 changes: 20 additions & 20 deletions include/boost/phoenix/core/preprocessed/expression_20.hpp
Expand Up @@ -58,7 +58,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -100,7 +100,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -142,7 +142,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -184,7 +184,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -226,7 +226,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -268,7 +268,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -310,7 +310,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -352,7 +352,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -394,7 +394,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -436,7 +436,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -478,7 +478,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -520,7 +520,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -562,7 +562,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -604,7 +604,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -646,7 +646,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -688,7 +688,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -730,7 +730,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -772,7 +772,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -814,7 +814,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -856,7 +856,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down
60 changes: 30 additions & 30 deletions include/boost/phoenix/core/preprocessed/expression_30.hpp
Expand Up @@ -58,7 +58,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -100,7 +100,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -142,7 +142,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -184,7 +184,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -226,7 +226,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -268,7 +268,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -310,7 +310,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -352,7 +352,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -394,7 +394,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -436,7 +436,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -478,7 +478,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -520,7 +520,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -562,7 +562,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -604,7 +604,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -646,7 +646,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -688,7 +688,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -730,7 +730,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -772,7 +772,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -814,7 +814,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -856,7 +856,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -898,7 +898,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -940,7 +940,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -982,7 +982,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1024,7 +1024,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1066,7 +1066,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1108,7 +1108,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1150,7 +1150,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1192,7 +1192,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1234,7 +1234,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1276,7 +1276,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down
80 changes: 40 additions & 40 deletions include/boost/phoenix/core/preprocessed/expression_40.hpp
Expand Up @@ -58,7 +58,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -100,7 +100,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -142,7 +142,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -184,7 +184,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -226,7 +226,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -268,7 +268,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -310,7 +310,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -352,7 +352,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -394,7 +394,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -436,7 +436,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -478,7 +478,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -520,7 +520,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -562,7 +562,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -604,7 +604,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -646,7 +646,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -688,7 +688,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -730,7 +730,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -772,7 +772,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -814,7 +814,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -856,7 +856,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -898,7 +898,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -940,7 +940,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -982,7 +982,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1024,7 +1024,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1066,7 +1066,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1108,7 +1108,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1150,7 +1150,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1192,7 +1192,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1234,7 +1234,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1276,7 +1276,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1318,7 +1318,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1360,7 +1360,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1402,7 +1402,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1444,7 +1444,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1486,7 +1486,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1528,7 +1528,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1570,7 +1570,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1612,7 +1612,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1654,7 +1654,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down Expand Up @@ -1696,7 +1696,7 @@ namespace boost { namespace phoenix
}
template<typename Expr, typename State, typename Data>
struct impl
: proto::detail::pass_through_impl<expr_ext, proto::deduce_domain, Expr, State, Data>
: proto::pass_through<expr_ext>::template impl<Expr, State, Data>
{};

typedef Tag proto_tag;
Expand Down
100 changes: 50 additions & 50 deletions include/boost/phoenix/core/preprocessed/expression_50.hpp

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion include/boost/phoenix/object/delete.hpp
Expand Up @@ -26,7 +26,7 @@ namespace boost { namespace phoenix

template <typename P, typename Context>
result_type
operator()(P const& p, Context &ctx) const
operator()(P const& p, Context const &ctx) const
{
delete boost::phoenix::eval(p, ctx);
}
Expand Down
4 changes: 2 additions & 2 deletions include/boost/phoenix/scope/lambda.hpp
Expand Up @@ -272,9 +272,9 @@ namespace boost { namespace phoenix
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context &)
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context & ctx) const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
Expand Down
6 changes: 3 additions & 3 deletions include/boost/phoenix/scope/preprocessed/lambda_10.hpp
Expand Up @@ -12,7 +12,7 @@ namespace boost { namespace phoenix
{
struct lambda_eval
{
typedef void proto_is_callable_;
BOOST_PROTO_CALLABLE()
template <typename Sig>
struct result;
template <
Expand Down Expand Up @@ -217,9 +217,9 @@ namespace boost { namespace phoenix
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context &)
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context & ctx) const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
Expand Down
6 changes: 3 additions & 3 deletions include/boost/phoenix/scope/preprocessed/lambda_20.hpp
Expand Up @@ -12,7 +12,7 @@ namespace boost { namespace phoenix
{
struct lambda_eval
{
typedef void proto_is_callable_;
BOOST_PROTO_CALLABLE()
template <typename Sig>
struct result;
template <
Expand Down Expand Up @@ -217,9 +217,9 @@ namespace boost { namespace phoenix
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context &)
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context & ctx) const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
Expand Down
6 changes: 3 additions & 3 deletions include/boost/phoenix/scope/preprocessed/lambda_30.hpp
Expand Up @@ -12,7 +12,7 @@ namespace boost { namespace phoenix
{
struct lambda_eval
{
typedef void proto_is_callable_;
BOOST_PROTO_CALLABLE()
template <typename Sig>
struct result;
template <
Expand Down Expand Up @@ -217,9 +217,9 @@ namespace boost { namespace phoenix
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context &)
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context & ctx) const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
Expand Down
6 changes: 3 additions & 3 deletions include/boost/phoenix/scope/preprocessed/lambda_40.hpp
Expand Up @@ -12,7 +12,7 @@ namespace boost { namespace phoenix
{
struct lambda_eval
{
typedef void proto_is_callable_;
BOOST_PROTO_CALLABLE()
template <typename Sig>
struct result;
template <
Expand Down Expand Up @@ -217,9 +217,9 @@ namespace boost { namespace phoenix
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context &)
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context & ctx) const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
Expand Down
6 changes: 3 additions & 3 deletions include/boost/phoenix/scope/preprocessed/lambda_50.hpp
Expand Up @@ -12,7 +12,7 @@ namespace boost { namespace phoenix
{
struct lambda_eval
{
typedef void proto_is_callable_;
BOOST_PROTO_CALLABLE()
template <typename Sig>
struct result;
template <
Expand Down Expand Up @@ -217,9 +217,9 @@ namespace boost { namespace phoenix
, typename Context
>
typename result<
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context &)
lambda_actor_eval(Vars const&, Map const &, Lambda const&, Context const &)
>::type const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context & ctx) const
operator()(Vars const& vars, Map const& map, Lambda const& lambda, Context const & ctx) const
{
typedef
typename proto::detail::uncvref<
Expand Down
36 changes: 18 additions & 18 deletions include/boost/phoenix/statement/detail/preprocessed/switch_10.hpp
Expand Up @@ -15,7 +15,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<2>
Expand All @@ -38,7 +38,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<2>
Expand Down Expand Up @@ -79,7 +79,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<3>
Expand All @@ -102,7 +102,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<3>
Expand Down Expand Up @@ -143,7 +143,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<4>
Expand All @@ -166,7 +166,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<4>
Expand Down Expand Up @@ -207,7 +207,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<5>
Expand All @@ -230,7 +230,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<5>
Expand Down Expand Up @@ -271,7 +271,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<6>
Expand All @@ -294,7 +294,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<6>
Expand Down Expand Up @@ -335,7 +335,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<7>
Expand All @@ -358,7 +358,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<7>
Expand Down Expand Up @@ -399,7 +399,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<8>
Expand All @@ -422,7 +422,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<8>
Expand Down Expand Up @@ -463,7 +463,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<9>
Expand All @@ -486,7 +486,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<9>
Expand Down Expand Up @@ -527,7 +527,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<10>
Expand All @@ -550,7 +550,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<10>
Expand Down
76 changes: 38 additions & 38 deletions include/boost/phoenix/statement/detail/preprocessed/switch_20.hpp
Expand Up @@ -15,7 +15,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<2>
Expand All @@ -38,7 +38,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<2>
Expand Down Expand Up @@ -79,7 +79,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<3>
Expand All @@ -102,7 +102,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<3>
Expand Down Expand Up @@ -143,7 +143,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<4>
Expand All @@ -166,7 +166,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<4>
Expand Down Expand Up @@ -207,7 +207,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<5>
Expand All @@ -230,7 +230,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<5>
Expand Down Expand Up @@ -271,7 +271,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<6>
Expand All @@ -294,7 +294,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<6>
Expand Down Expand Up @@ -335,7 +335,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<7>
Expand All @@ -358,7 +358,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<7>
Expand Down Expand Up @@ -399,7 +399,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<8>
Expand All @@ -422,7 +422,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<8>
Expand Down Expand Up @@ -463,7 +463,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<9>
Expand All @@ -486,7 +486,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<9>
Expand Down Expand Up @@ -527,7 +527,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<10>
Expand All @@ -550,7 +550,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<10>
Expand Down Expand Up @@ -591,7 +591,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<11>
Expand All @@ -614,7 +614,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<11>
Expand Down Expand Up @@ -655,7 +655,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<12>
Expand All @@ -678,7 +678,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<12>
Expand Down Expand Up @@ -719,7 +719,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<13>
Expand All @@ -742,7 +742,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<13>
Expand Down Expand Up @@ -783,7 +783,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<14>
Expand All @@ -806,7 +806,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<14>
Expand Down Expand Up @@ -847,7 +847,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<15>
Expand All @@ -870,7 +870,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<15>
Expand Down Expand Up @@ -911,7 +911,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<16>
Expand All @@ -934,7 +934,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<16>
Expand Down Expand Up @@ -975,7 +975,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<17>
Expand All @@ -998,7 +998,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<17>
Expand Down Expand Up @@ -1039,7 +1039,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<18>
Expand All @@ -1062,7 +1062,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<18>
Expand Down Expand Up @@ -1103,7 +1103,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<19>
Expand All @@ -1126,7 +1126,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<19>
Expand Down Expand Up @@ -1167,7 +1167,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<20>
Expand All @@ -1190,7 +1190,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<20>
Expand Down
116 changes: 58 additions & 58 deletions include/boost/phoenix/statement/detail/preprocessed/switch_30.hpp

Large diffs are not rendered by default.

156 changes: 78 additions & 78 deletions include/boost/phoenix/statement/detail/preprocessed/switch_40.hpp

Large diffs are not rendered by default.

196 changes: 98 additions & 98 deletions include/boost/phoenix/statement/detail/preprocessed/switch_50.hpp

Large diffs are not rendered by default.

Expand Up @@ -20,7 +20,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0, Context & ctx) const
operator()(Try const & try_, A0 const& a0, Context const & ctx) const
{
try
{
Expand All @@ -36,7 +36,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0, Context & ctx) const
operator()(Try const & try_, A0 const& a0, Context const & ctx) const
{
try
{
Expand Down Expand Up @@ -67,7 +67,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1, Context const & ctx) const
{
try
{
Expand All @@ -83,7 +83,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1, Context const & ctx) const
{
try
{
Expand Down Expand Up @@ -114,7 +114,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2, Context const & ctx) const
{
try
{
Expand All @@ -130,7 +130,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2, Context const & ctx) const
{
try
{
Expand Down Expand Up @@ -161,7 +161,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3, Context const & ctx) const
{
try
{
Expand All @@ -177,7 +177,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3, Context const & ctx) const
{
try
{
Expand Down Expand Up @@ -208,7 +208,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4, Context const & ctx) const
{
try
{
Expand All @@ -224,7 +224,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4, Context const & ctx) const
{
try
{
Expand Down Expand Up @@ -255,7 +255,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5, Context const & ctx) const
{
try
{
Expand All @@ -271,7 +271,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5, Context const & ctx) const
{
try
{
Expand Down Expand Up @@ -302,7 +302,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6, Context const & ctx) const
{
try
{
Expand All @@ -318,7 +318,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6, Context const & ctx) const
{
try
{
Expand Down Expand Up @@ -349,7 +349,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7, Context const & ctx) const
{
try
{
Expand All @@ -365,7 +365,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7, Context const & ctx) const
{
try
{
Expand Down Expand Up @@ -396,7 +396,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8, Context const & ctx) const
{
try
{
Expand All @@ -412,7 +412,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8, Context const & ctx) const
{
try
{
Expand Down Expand Up @@ -443,7 +443,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9, Context const & ctx) const
{
try
{
Expand All @@ -459,7 +459,7 @@
>
, result_type
>::type
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9, Context & ctx) const
operator()(Try const & try_, A0 const& a0 , A1 const& a1 , A2 const& a2 , A3 const& a3 , A4 const& a4 , A5 const& a5 , A6 const& a6 , A7 const& a7 , A8 const& a8 , A9 const& a9, Context const & ctx) const
{
try
{
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

200 changes: 100 additions & 100 deletions include/boost/phoenix/statement/detail/preprocessed/try_catch_eval_50.hpp

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions include/boost/phoenix/statement/detail/switch.hpp
Expand Up @@ -85,7 +85,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<BOOST_PHOENIX_ITERATION>
Expand Down Expand Up @@ -117,7 +117,7 @@
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<BOOST_PHOENIX_ITERATION>
Expand Down
4 changes: 2 additions & 2 deletions include/boost/phoenix/statement/detail/try_catch_eval.hpp
Expand Up @@ -71,7 +71,7 @@
>
, result_type
>::type
operator()(Try const & try_, BOOST_PHOENIX_A_const_ref_a, Context & ctx) const
operator()(Try const & try_, BOOST_PHOENIX_A_const_ref_a, Context const & ctx) const
{
try
{
Expand All @@ -88,7 +88,7 @@
>
, result_type
>::type
operator()(Try const & try_, BOOST_PHOENIX_A_const_ref_a, Context & ctx) const
operator()(Try const & try_, BOOST_PHOENIX_A_const_ref_a, Context const & ctx) const
{
try
{
Expand Down
2 changes: 1 addition & 1 deletion include/boost/phoenix/statement/do_while.hpp
Expand Up @@ -27,7 +27,7 @@ namespace boost { namespace phoenix

template <typename Cond, typename Do, typename Context>
result_type
operator()(Cond const& cond, Do const& do_, Context & ctx) const
operator()(Cond const& cond, Do const& do_, Context const & ctx) const
{
do
boost::phoenix::eval(do_, ctx);
Expand Down
2 changes: 1 addition & 1 deletion include/boost/phoenix/statement/for.hpp
Expand Up @@ -40,7 +40,7 @@ namespace boost { namespace phoenix
, Cond const& cond
, Step const& step
, Do const& do_
, Context & ctx
, Context const & ctx
) const
{
for(boost::phoenix::eval(init, ctx); boost::phoenix::eval(cond, ctx); boost::phoenix::eval(step, ctx))
Expand Down
2 changes: 1 addition & 1 deletion include/boost/phoenix/statement/if.hpp
Expand Up @@ -56,7 +56,7 @@ namespace boost { namespace phoenix

template<typename Cond, typename Then, typename Context>
result_type
operator()(Cond const & cond, Then const & then, Context & ctx) const
operator()(Cond const & cond, Then const & then, Context const & ctx) const
{
if(boost::phoenix::eval(cond, ctx))
boost::phoenix::eval(then, ctx);
Expand Down
8 changes: 4 additions & 4 deletions include/boost/phoenix/statement/switch.hpp
Expand Up @@ -124,13 +124,13 @@ namespace boost { namespace phoenix {

template <typename Context>
result_type
operator()(Context &) const
operator()(Context const &) const
{
}

template <typename Cond, typename Cases, typename Context>
result_type
operator()(Cond const & cond, Cases const & cases, Context & ctx) const
operator()(Cond const & cond, Cases const & cases, Context const & ctx) const
{
this->evaluate(
ctx
Expand All @@ -145,7 +145,7 @@ namespace boost { namespace phoenix {
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<1>
Expand All @@ -171,7 +171,7 @@ namespace boost { namespace phoenix {
template <typename Context, typename Cond, typename Cases>
result_type
evaluate(
Context & ctx
Context const & ctx
, Cond const & cond
, Cases const & cases
, mpl::int_<1>
Expand Down
2 changes: 1 addition & 1 deletion include/boost/phoenix/statement/throw.hpp
Expand Up @@ -50,7 +50,7 @@ namespace boost { namespace phoenix

template <typename ThrowExpr, typename Context>
result_type
operator()(ThrowExpr const& throw_expr, Context & ctx) const
operator()(ThrowExpr const& throw_expr, Context const & ctx) const
{
throw boost::phoenix::eval(throw_expr, ctx);
}
Expand Down
13 changes: 13 additions & 0 deletions include/boost/phoenix/statement/try_catch.hpp
Expand Up @@ -17,6 +17,11 @@
#include <boost/phoenix/core/is_nullary.hpp>
#include <boost/proto/functional/fusion/pop_front.hpp>

#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable: 4355) // 'this' : used in base member initializer list
#endif

namespace boost { namespace phoenix
{
template <typename Expr>
Expand Down Expand Up @@ -101,6 +106,10 @@ namespace boost { namespace phoenix
{
typedef void result_type;

template <typename Try, typename Context>
void operator()(Try const &, Context const &) const
{}

// bring in the operator overloads
#include <boost/phoenix/statement/detail/try_catch_eval.hpp>
};
Expand Down Expand Up @@ -358,4 +367,8 @@ namespace boost { namespace phoenix
#endif
}}

#ifdef _MSC_VER
#pragma warning(pop)
#endif

#endif
2 changes: 1 addition & 1 deletion include/boost/phoenix/statement/while.hpp
Expand Up @@ -27,7 +27,7 @@ namespace boost { namespace phoenix

template <typename Cond, typename Do, typename Context>
result_type
operator()(Cond const& cond, Do const& do_, Context & ctx) const
operator()(Cond const& cond, Do const& do_, Context const & ctx) const
{
while(boost::phoenix::eval(cond, ctx))
{
Expand Down
59 changes: 52 additions & 7 deletions include/boost/phoenix/stl/container/container.hpp
Expand Up @@ -349,18 +349,40 @@ namespace boost { namespace phoenix
{};

template <typename C, typename Arg1>
typename result_of::erase<C, Arg1>::type
typename stl_impl::disable_if_is_void<
typename result_of::erase<C, Arg1>::type
>::type
operator()(C& c, Arg1 arg1) const
{
return c.erase(arg1);
}

template <typename C, typename Arg1>
typename stl_impl::enable_if_is_void<
typename result_of::erase<C, Arg1>::type
>::type
operator()(C& c, Arg1 arg1) const
{
c.erase(arg1);
}

template <typename C, typename Arg1, typename Arg2>
typename result_of::erase<C, Arg1, Arg2>::type
typename stl_impl::disable_if_is_void<
typename result_of::erase<C, Arg1, Arg2>::type
>::type
operator()(C& c, Arg1 arg1, Arg2 arg2) const
{
return c.erase(arg1, arg2);
}

template <typename C, typename Arg1, typename Arg2>
typename stl_impl::enable_if_is_void<
typename result_of::erase<C, Arg1, Arg2>::type
>::type
operator()(C& c, Arg1 arg1, Arg2 arg2) const
{
c.erase(arg1, arg2);
}
};

struct front
Expand Down Expand Up @@ -512,19 +534,42 @@ namespace boost { namespace phoenix
}

template <typename C, typename Arg1, typename Arg2>
typename result<insert(C&, Arg1, Arg2)>::type
typename stl_impl::disable_if_is_void<
typename result<insert(C&, Arg1, Arg2)>::type
>::type
operator()(C& c, Arg1 arg1, Arg2 arg2) const
{
return c.insert(arg1, arg2);
}

template <typename C, typename Arg1, typename Arg2>
typename stl_impl::enable_if_is_void<
typename result<insert(C&, Arg1, Arg2)>::type
>::type
operator()(C& c, Arg1 arg1, Arg2 arg2) const
{
c.insert(arg1, arg2);
}

template <typename C, typename Arg1, typename Arg2, typename Arg3>
typename result<insert(C&, Arg1, Arg2, Arg3)>::type
typename stl_impl::disable_if_is_void<
typename result<insert(C&, Arg1, Arg2, Arg3)>::type
>::type
operator()(
C& c, Arg1 arg1, Arg2 arg2, Arg3 arg3) const
{
return c.insert(arg1, arg2, arg3);
}

template <typename C, typename Arg1, typename Arg2, typename Arg3>
typename stl_impl::enable_if_is_void<
typename result<insert(C&, Arg1, Arg2, Arg3)>::type
>::type
operator()(
C& c, Arg1 arg1, Arg2 arg2, Arg3 arg3) const
{
c.insert(arg1, arg2, arg3);
}
};

namespace result_of
Expand Down Expand Up @@ -666,7 +711,7 @@ namespace boost { namespace phoenix
template <typename C, typename Arg>
void operator()(C& c, Arg const& count) const
{
return c.reserve(count);
c.reserve(count);
}
};

Expand All @@ -677,13 +722,13 @@ namespace boost { namespace phoenix
template <typename C, typename Arg1>
void operator()(C& c, Arg1 const& arg1) const
{
return c.resize(arg1);
c.resize(arg1);
}

template <typename C, typename Arg1, typename Arg2>
void operator()(C& c, Arg1 const& arg1, Arg2 const& arg2) const
{
return c.resize(arg1, arg2);
c.resize(arg1, arg2);
}
};

Expand Down
20 changes: 20 additions & 0 deletions include/boost/phoenix/stl/container/detail/container.hpp
Expand Up @@ -124,6 +124,26 @@ namespace boost { namespace phoenix { namespace stl

template <typename C>
two has_mapped_type(...);

template<typename T>
struct enable_if_is_void
{};

template<>
struct enable_if_is_void<void>
{
typedef void type;
};

template<typename T>
struct disable_if_is_void
{
typedef T type;
};

template<>
struct disable_if_is_void<void>
{};
}

template <typename C>
Expand Down
39 changes: 39 additions & 0 deletions preprocess/Jamfile.v2
@@ -0,0 +1,39 @@
# (C) Copyright 2012: Eric Niebler
# 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)

# Generates preprocessed files with wave.

import feature ;
import toolset ;

feature.feature phoenix-limit : : free ;
toolset.flags wave PHOENIX-LIMIT <phoenix-limit> ;

actions wave bind PHOENIX-LIMIT
{
echo Preprocessing with BOOST_PHOENIX_LIMIT=$(PHOENIX-LIMIT)...
$(>[2]) -o- -DBOOST_PHOENIX_LIMIT=$(PHOENIX-LIMIT) --config-file wave.cfg $(>[1])
}

W = ../../../tools/wave/build//wave ;

make preprocess_phoenix_10
: preprocess_phoenix.cpp $(W) : wave : <phoenix-limit>10
;

make preprocess_phoenix_20
: preprocess_phoenix.cpp $(W) : wave : <phoenix-limit>20
;

make preprocess_phoenix_30
: preprocess_phoenix.cpp $(W) : wave : <phoenix-limit>30
;

make preprocess_phoenix_40
: preprocess_phoenix.cpp $(W) : wave : <phoenix-limit>40
;

make preprocess_phoenix_50
: preprocess_phoenix.cpp $(W) : wave : <phoenix-limit>50
;
21 changes: 21 additions & 0 deletions preprocess/wave-msvc-10.0.cfg
@@ -0,0 +1,21 @@
-DBOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES
-DBOOST_PHOENIX_CREATE_PREPROCESSED_FILES
-S../../..
-S"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include"
-S.
--variadics
-D_WIN32
-NBOOST_STATIC_ASSERT
-NBOOST_STATIC_CONSTANT
-NBOOST_MPL_HAS_XXX_TRAIT_DEF
-NBOOST_MPL_ASSERT_MSG
-NBOOST_FORCEINLINE
-NBOOST_MPL_ASSERT
-NBOOST_MPL_ASSERT_MSG
-NBOOST_MPL_ASSERT_RELATION
-NBOOST_PROTO_USE_GET_POINTER
-NBOOST_PROTO_GET_POINTER
-NBOOST_PROTO_CALLABLE
-NBOOST_PROTO_TRANSFORM
-NBOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL
--timer
10 changes: 10 additions & 0 deletions preprocess/wave.cfg
Expand Up @@ -15,6 +15,16 @@
-S/usr/include
--variadics
-NBOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL
-NBOOST_STATIC_ASSERT
-NBOOST_STATIC_CONSTANT
-NBOOST_MPL_HAS_XXX_TRAIT_DEF
-NBOOST_MPL_ASSERT_MSG
-NBOOST_FORCEINLINE
-NBOOST_MPL_ASSERT
-NBOOST_MPL_ASSERT_MSG
-NBOOST_MPL_ASSERT_RELATION
-NBOOST_PROTO_USE_GET_POINTER
-NBOOST_PROTO_GET_POINTER
-NBOOST_PROTO_CALLABLE
-NBOOST_PROTO_TRANSFORM
--timer
1 change: 1 addition & 0 deletions test/algorithm/transformation2.cpp
Expand Up @@ -6,6 +6,7 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/

#include <functional>
#include <boost/phoenix/core.hpp>
#include <boost/phoenix/stl/algorithm/transformation.hpp>
#include <boost/detail/lightweight_test.hpp>
Expand Down
1 change: 1 addition & 0 deletions test/algorithm/transformation3.cpp
Expand Up @@ -6,6 +6,7 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/

#include <functional>
#include <boost/phoenix/core.hpp>
#include <boost/phoenix/stl/algorithm/transformation.hpp>
#include <boost/detail/lightweight_test.hpp>
Expand Down
104 changes: 86 additions & 18 deletions test/boost_bind_compatibility/bind_stateful_test.cpp
Expand Up @@ -35,7 +35,7 @@ class X
{
private:

int state_;
mutable int state_;

public:

Expand All @@ -50,6 +50,76 @@ class X

typedef int result_type;

int operator()() const
{
return state_ += 17041;
}

int operator()(int x1) const
{
return state_ += x1;
}

int operator()(int x1, int x2) const
{
return state_ += x1+x2;
}

int operator()(int x1, int x2, int x3) const
{
return state_ += x1+x2+x3;
}

int operator()(int x1, int x2, int x3, int x4) const
{
return state_ += x1+x2+x3+x4;
}

int operator()(int x1, int x2, int x3, int x4, int x5) const
{
return state_ += x1+x2+x3+x4+x5;
}

int operator()(int x1, int x2, int x3, int x4, int x5, int x6) const
{
return state_ += x1+x2+x3+x4+x5+x6;
}

int operator()(int x1, int x2, int x3, int x4, int x5, int x6, int x7) const
{
return state_ += x1+x2+x3+x4+x5+x6+x7;
}

int operator()(int x1, int x2, int x3, int x4, int x5, int x6, int x7, int x8) const
{
return state_ += x1+x2+x3+x4+x5+x6+x7+x8;
}

int operator()(int x1, int x2, int x3, int x4, int x5, int x6, int x7, int x8, int x9) const
{
return state_ += x1+x2+x3+x4+x5+x6+x7+x8+x9;
}
};

class Y
{
private:

int state_;

public:

Y(): state_(0)
{
}

int state() const
{
return state_;
}

typedef int result_type;

int operator()()
{
return state_ += 17041;
Expand Down Expand Up @@ -169,45 +239,43 @@ void stateful_function_object_test()
::test( bind( X(), 1, 2, 3, 4, 5, 6 ), 0, 1+2+3+4+5+6 );
::test( bind( X(), 1, 2, 3, 4, 5, 6, 7 ), 0, 1+2+3+4+5+6+7 );
::test( bind( X(), 1, 2, 3, 4, 5, 6, 7, 8 ), 0, 1+2+3+4+5+6+7+8 );
//::test( bind( X(), 1, 2, 3, 4, 5, 6, 7, 8, 9 ), 0, 1+2+3+4+5+6+7+8+9 );
::test( bind( X(), 1, 2, 3, 4, 5, 6, 7, 8, 9 ), 0, 1+2+3+4+5+6+7+8+9 );

X x;
Y y;

int n = x.state();
int n = y.state();

::test( bind( ref(x) ), n, 17041 );
::test( bind( ref(y) ), n, 17041 );
n += 3 * 17041;

::test( bind( ref(x), 1 ), n, 1 );
::test( bind( ref(y), 1 ), n, 1 );
n += 3*1;

::test( bind( ref(x), 1, 2 ), n, 1+2 );
::test( bind( ref(y), 1, 2 ), n, 1+2 );
n += 3*(1+2);

::test( bind( ref(x), 1, 2, 3 ), n, 1+2+3 );
::test( bind( ref(y), 1, 2, 3 ), n, 1+2+3 );
n += 3*(1+2+3);

::test( bind( ref(x), 1, 2, 3, 4 ), n, 1+2+3+4 );
::test( bind( ref(y), 1, 2, 3, 4 ), n, 1+2+3+4 );
n += 3*(1+2+3+4);

::test( bind( ref(x), 1, 2, 3, 4, 5 ), n, 1+2+3+4+5 );
::test( bind( ref(y), 1, 2, 3, 4, 5 ), n, 1+2+3+4+5 );
n += 3*(1+2+3+4+5);

::test( bind( ref(x), 1, 2, 3, 4, 5, 6 ), n, 1+2+3+4+5+6 );
::test( bind( ref(y), 1, 2, 3, 4, 5, 6 ), n, 1+2+3+4+5+6 );
n += 3*(1+2+3+4+5+6);

::test( bind( ref(x), 1, 2, 3, 4, 5, 6, 7 ), n, 1+2+3+4+5+6+7 );
::test( bind( ref(y), 1, 2, 3, 4, 5, 6, 7 ), n, 1+2+3+4+5+6+7 );
n += 3*(1+2+3+4+5+6+7);

::test( bind( ref(x), 1, 2, 3, 4, 5, 6, 7, 8 ), n, 1+2+3+4+5+6+7+8 );
::test( bind( ref(y), 1, 2, 3, 4, 5, 6, 7, 8 ), n, 1+2+3+4+5+6+7+8 );
n += 3*(1+2+3+4+5+6+7+8);

/*
::test( bind( ref(x), 1, 2, 3, 4, 5, 6, 7, 8, 9 ), n, 1+2+3+4+5+6+7+8+9 );
::test( bind( ref(y), 1, 2, 3, 4, 5, 6, 7, 8, 9 ), n, 1+2+3+4+5+6+7+8+9 );
n += 3*(1+2+3+4+5+6+7+8+9);
*/

BOOST_TEST( x.state() == n );
BOOST_TEST( y.state() == n );
}

void stateful_function_test()
Expand All @@ -222,7 +290,7 @@ void stateful_function_test()
::test( bind( f5, 0, 1, 2, 3, 4, 5 ), 0, 1+2+3+4+5 );
::test( bind( f6, 0, 1, 2, 3, 4, 5, 6 ), 0, 1+2+3+4+5+6 );
::test( bind( f7, 0, 1, 2, 3, 4, 5, 6, 7 ), 0, 1+2+3+4+5+6+7 );
//::test( bind( f8, 0, 1, 2, 3, 4, 5, 6, 7, 8 ), 0, 1+2+3+4+5+6+7+8 );
::test( bind( f8, 0, 1, 2, 3, 4, 5, 6, 7, 8 ), 0, 1+2+3+4+5+6+7+8 );
}

int main()
Expand Down