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.cpp:2: ./boost/phoenix/core/detail/preprocessed/function_eval_10.hpp: In instantiation of ‘typename boost::phoenix::detail::function_eval::result::type boost::phoenix::detail::function_eval::operator()(const F&, A0&, const Context&) const [with F = boost::proto::exprns_::basic_expr, 0l>; A0 = const boost::proto::exprns_::basic_expr, 0l>; Context = boost::phoenix::vector2, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >*>&, const boost::phoenix::default_actions&>; typename boost::phoenix::detail::function_eval::result::type = void]’: ./boost/phoenix/core/detail/preprocessed/call_10.hpp:76:21: required from ‘boost::phoenix::detail::call_impl::result_type boost::phoenix::detail::call_impl::operator()(typename boost::phoenix::detail::call_impl::expr_param, typename boost::phoenix::detail::call_impl::state_param, typename boost::phoenix::detail::call_impl::data_param) const [with Fun = boost::phoenix::detail::function_eval; Expr = const boost::phoenix::actor, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >&; State = boost::phoenix::vector1, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >*>&; Data = const boost::phoenix::default_actions&; boost::phoenix::detail::call_impl::result_type = void; typename boost::phoenix::detail::call_impl::expr_param = const boost::phoenix::actor, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >&; typename boost::phoenix::detail::call_impl::state_param = boost::phoenix::vector1, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >*>&; typename boost::phoenix::detail::call_impl::data_param = const boost::phoenix::default_actions&]’ ./boost/phoenix/core/meta_grammar.hpp:74:61: required from ‘boost::phoenix::evaluator::impl::result_type boost::phoenix::evaluator::impl::operator()(typename boost::phoenix::evaluator::impl::expr_param, typename boost::phoenix::evaluator::impl::state_param, typename boost::phoenix::evaluator::impl::data_param) const [with Expr = const boost::phoenix::actor, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >&; State = const boost::phoenix::vector2, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >*>&, const boost::phoenix::default_actions&>&; boost::phoenix::evaluator::impl::result_type = void; typename boost::phoenix::evaluator::impl::expr_param = const boost::phoenix::actor, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >&; typename boost::phoenix::evaluator::impl::state_param = const boost::phoenix::vector2, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >*>&, const boost::phoenix::default_actions&>&; typename boost::phoenix::evaluator::impl::data_param = const boost::proto::envns_::empty_env&]’ ./boost/phoenix/core/meta_grammar.hpp:34:9: required from ‘typename boost::proto::detail::apply_transform::result_type boost::phoenix::evaluator::operator()(const Expr&, const State&) const [with Expr = boost::phoenix::actor, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >; State = boost::phoenix::vector2, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >*>&, const boost::phoenix::default_actions&>; typename boost::proto::detail::apply_transform::result_type = void]’ ./boost/phoenix/core/meta_grammar.hpp:139:27: required from ‘typename boost::proto::switch_::impl::type, typename boost::phoenix::result_of::actions::type>::result_type boost::phoenix::eval(const Expr&, const Context&) [with Expr = boost::phoenix::actor, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >; Context = boost::phoenix::vector2, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l> >*>&, const boost::phoenix::default_actions&>; typename boost::proto::switch_::impl::type, typename boost::phoenix::result_of::actions::type>::result_type = void]’ ./boost/phoenix/core/actor.hpp:254:81: required from ‘typename boost::phoenix::result_of::actor, mpl_::bool_::value> >::value, boost::proto::terminal, boost::mpl::identity >::type::proto_base_expr>::type boost::phoenix::actor::operator()() const [with Expr = boost::proto::exprns_::basic_expr, 0l>, boost::proto::exprns_::basic_expr, 0l> >, 2l>; typename boost::phoenix::result_of::actor, mpl_::bool_::value> >::value, boost::proto::terminal, boost::mpl::identity >::type::proto_base_expr>::type = void]’ ./phoenix_non_const.cpp:19:44: required from here ./boost/phoenix/core/detail/preprocessed/function_eval_10.hpp:85:51: error: passing ‘const my_func’ as ‘this’ argument of ‘void my_func::operator()(int&)’ discards qualifiers [-fpermissive] return boost::phoenix::eval(f, ctx)(help_rvalue_deduction(boost::phoenix::eval(a0, ctx))); ^