In file included from ./boost/phoenix/core/detail/preprocessed/function_eval.hpp:12:0, from ./boost/phoenix/core/detail/function_eval.hpp:14, from ./boost/phoenix/function/function.hpp:13, from ./boost/phoenix/function.hpp:11, from ./boost/phoenix/phoenix.hpp:12, from ./boost/phoenix.hpp:11, from ./phoenix_non_const_ref.cpp:2: ./boost/phoenix/core/detail/preprocessed/function_eval_10.hpp: In instantiation of ‘struct boost::phoenix::detail::function_eval::result, 0l>&, const boost::phoenix::actor >, 0l> >&, const boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>&)>’: ./boost/phoenix/core/detail/preprocessed/function_eval_10.hpp:95:13: required by substitution of ‘template typename boost::phoenix::detail::function_eval::result::type boost::phoenix::detail::function_eval::operator()(F&, A0&, const Context&) const [with F = const boost::proto::exprns_::basic_expr, 0l>; A0 = const boost::phoenix::actor >, 0l> >; Context = boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>]’ ./boost/utility/detail/result_of_iterate.hpp:140:51: required from ‘struct boost::detail::cpp0x_result_of, 0l>&, const boost::phoenix::actor >, 0l> >&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>)>’ ./boost/utility/detail/result_of_iterate.hpp:42:8: required from ‘struct boost::result_of, 0l>&, const boost::phoenix::actor >, 0l> >&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>)>’ ./boost/phoenix/core/detail/preprocessed/call_10.hpp:65:17: required from ‘struct boost::phoenix::detail::call_impl, 0l>, boost::phoenix::actor >, 0l> > >, 2l>&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&, 2l>’ ./boost/phoenix/core/call.hpp:60:16: required from ‘struct boost::phoenix::call::impl, 0l>, boost::phoenix::actor >, 0l> > >, 2l>&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>’ ./boost/proto/transform/when.hpp:186:16: required from ‘struct boost::proto::when::impl, 0l>, boost::phoenix::actor >, 0l> > >, 2l>&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>’ ./boost/proto/matches.hpp:834:16: required from ‘struct boost::proto::switch_::impl, 0l>, boost::phoenix::actor >, 0l> > >, 2l>&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>’ ./boost/phoenix/core/meta_grammar.hpp:66:48: required from ‘struct boost::phoenix::evaluator::impl, 0l>, boost::phoenix::actor >, 0l> > >, 2l>&, const boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, boost::phoenix::default_actions>&, boost::proto::envns_::empty_env>’ ./boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp:60:17: required from ‘struct boost::phoenix::result_of::actor, 0l>, boost::phoenix::actor >, 0l> > >, 2l>, const int&, void, void, void, void, void, void, void, void, void, void>’ ./boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp:19:1114: required by substitution of ‘template typename boost::phoenix::result_of::actor, mpl_::bool_::value> >::value, boost::proto::terminal, boost::mpl::identity >::type::proto_base_expr, const A0&>::type boost::phoenix::actor::operator()(const A0&) [with A0 = A0; Expr = boost::proto::exprns_::basic_expr, 0l>, boost::phoenix::actor >, 0l> > >, 2l>] [with A0 = int]’ ./phoenix_non_const_ref.cpp:17:64: required from here ./boost/phoenix/core/detail/preprocessed/function_eval_10.hpp:72:21: error: no type named ‘type’ in ‘struct boost::result_of’ type; ^ In file included from ./boost/phoenix/core/detail/preprocessed/call.hpp:12:0, from ./boost/phoenix/core/detail/call.hpp:6, from ./boost/phoenix/core/call.hpp:65, from ./boost/phoenix/core/nothing.hpp:13, from ./boost/phoenix/core.hpp:20, from ./boost/phoenix/phoenix.hpp:11, from ./boost/phoenix.hpp:11, from ./phoenix_non_const_ref.cpp:2: ./boost/phoenix/core/detail/preprocessed/call_10.hpp: In instantiation of ‘struct boost::phoenix::detail::call_impl, 0l>, boost::phoenix::actor >, 0l> > >, 2l>&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&, 2l>’: ./boost/phoenix/core/call.hpp:60:16: required from ‘struct boost::phoenix::call::impl, 0l>, boost::phoenix::actor >, 0l> > >, 2l>&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>’ ./boost/proto/transform/when.hpp:186:16: required from ‘struct boost::proto::when::impl, 0l>, boost::phoenix::actor >, 0l> > >, 2l>&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>’ ./boost/proto/matches.hpp:834:16: required from ‘struct boost::proto::switch_::impl, 0l>, boost::phoenix::actor >, 0l> > >, 2l>&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>’ ./boost/phoenix/core/meta_grammar.hpp:66:48: required from ‘struct boost::phoenix::evaluator::impl, 0l>, boost::phoenix::actor >, 0l> > >, 2l>&, const boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, boost::phoenix::default_actions>&, boost::proto::envns_::empty_env>’ ./boost/phoenix/core/detail/preprocessed/actor_result_of_10.hpp:60:17: required from ‘struct boost::phoenix::result_of::actor, 0l>, boost::phoenix::actor >, 0l> > >, 2l>, const int&, void, void, void, void, void, void, void, void, void, void>’ ./boost/phoenix/core/detail/preprocessed/actor_operator_10.hpp:19:1114: required by substitution of ‘template typename boost::phoenix::result_of::actor, mpl_::bool_::value> >::value, boost::proto::terminal, boost::mpl::identity >::type::proto_base_expr, const A0&>::type boost::phoenix::actor::operator()(const A0&) [with A0 = A0; Expr = boost::proto::exprns_::basic_expr, 0l>, boost::phoenix::actor >, 0l> > >, 2l>] [with A0 = int]’ ./phoenix_non_const_ref.cpp:17:64: required from here ./boost/phoenix/core/detail/preprocessed/call_10.hpp:65:17: error: no type named ‘type’ in ‘struct boost::result_of, 0l>&, const boost::phoenix::actor >, 0l> >&, boost::phoenix::vector2, 0l>, boost::phoenix::actor >, 0l> > >, 2l> >*, const int&>&, const boost::phoenix::default_actions&>)>’ result_type; ^