Skip to content

Instantly share code, notes, and snippets.

Created March 10, 2013 18:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/6b75ec3504d90b87d845 to your computer and use it in GitHub Desktop.
Save anonymous/6b75ec3504d90b87d845 to your computer and use it in GitHub Desktop.
[1:57pm][wlynch@apple /tmp] /opt/gcc/4.7.1/bin/g++ -std=gnu++11 foo.cc -I /opt/boost/1.53.0/include/ -DBOOST_SPIRIT_USE_PHOENIX_V3 -DBOOST_SPIRIT_ACTIONS_ALLOW_ATTR_COMPAT -DBOOST_SPIRIT_DEBUG In file included from /opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:21:0,
from /opt/boost/1.53.0/include/boost/spirit/home/qi/action.hpp:14,
from /opt/boost/1.53.0/include/boost/spirit/home/qi.hpp:14,
from /opt/boost/1.53.0/include/boost/spirit/include/qi.hpp:16,
from foo.cc:2:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp: In instantiation of ‘static void boost::spirit::traits::action_dispatch<Component>::caller(F&&, A&& ...) [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = {std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&}; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:153:13: required from ‘bool boost::spirit::traits::action_dispatch<Component>::operator()(const F&, Attribute&, Context&) [with F = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>; Attribute = std::vector<int>; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:126:17: required from ‘bool boost::spirit::qi::action<Subject, Action>::parse(Iterator&, const Iterator&, Context&, const Skipper&, boost::spirit::unused_type) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type; Subject = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >; Action = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:33:65: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::call(Iterator&, const Iterator&, Context&, const Skipper&, mpl_::true_) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:53:67: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::operator()(Iterator&, const Iterator&, Context&, const Skipper&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:132:42: required from ‘static R boost::detail::function::function_obj_invoker4<FunctionObj, R, T0, T1, T2, T3>::invoke(boost::detail::function::function_buffer&, T0, T1, T2, T3) [with FunctionObj = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:934:60: required from ‘void boost::function4<R, T1, T2, T3, T4>::assign_to(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:722:7: required from ‘boost::function4<R, T1, T2, T3, T4>::function4(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1069:16: required from ‘boost::function<R(T0, T1, T2, T3)>::function(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1124:5: required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:13: required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:13: required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>]’
foo.cc:23:53: required from here
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:142:13: error: no matching function for call to ‘boost::spirit::traits::action_dispatch<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > > >::do_call(const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&, boost::spirit::traits::action_dispatch<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > > >::fwd_tag<std::vector<int> >, boost::spirit::traits::action_dispatch<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > > >::fwd_tag<boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> > >, boost::spirit::traits::action_dispatch<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > > >::fwd_tag<bool>)’
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:142:13: note: candidates are:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:104:21: note: template<class F> static typename boost::spirit::traits::action_dispatch<Component>::fwd_storage<decltype (f()), boost::spirit::traits::action_dispatch<Component>::fwd_none>::type boost::spirit::traits::action_dispatch::do_call(F&&, ...) [with F = F; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:104:21: note: template argument deduction/substitution failed:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp: In substitution of ‘template<class F> static typename boost::spirit::traits::action_dispatch<Component>::fwd_storage<decltype (f()), boost::spirit::traits::action_dispatch<Component>::fwd_none>::type boost::spirit::traits::action_dispatch::do_call(F&&, ...) [with F = F; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >] [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&]’:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:142:13: required from ‘static void boost::spirit::traits::action_dispatch<Component>::caller(F&&, A&& ...) [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = {std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&}; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:153:13: required from ‘bool boost::spirit::traits::action_dispatch<Component>::operator()(const F&, Attribute&, Context&) [with F = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>; Attribute = std::vector<int>; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:126:17: required from ‘bool boost::spirit::qi::action<Subject, Action>::parse(Iterator&, const Iterator&, Context&, const Skipper&, boost::spirit::unused_type) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type; Subject = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >; Action = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:33:65: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::call(Iterator&, const Iterator&, Context&, const Skipper&, mpl_::true_) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:53:67: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::operator()(Iterator&, const Iterator&, Context&, const Skipper&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:132:42: [ skipping 2 instantiation contexts ]
/opt/boost/1.53.0/include/boost/function/function_template.hpp:722:7: required from ‘boost::function4<R, T1, T2, T3, T4>::function4(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1069:16: required from ‘boost::function<R(T0, T1, T2, T3)>::function(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1124:5: required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:13: required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:13: required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>]’
foo.cc:23:53: required from here
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:104:21: error: no match for call to ‘(const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>) ()’
In file included from /opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/memory:81:0,
from /opt/boost/1.53.0/include/boost/config/no_tr1/memory.hpp:21,
from /opt/boost/1.53.0/include/boost/get_pointer.hpp:14,
from /opt/boost/1.53.0/include/boost/proto/transform/default.hpp:21,
from /opt/boost/1.53.0/include/boost/phoenix/core/meta_grammar.hpp:17,
from /opt/boost/1.53.0/include/boost/phoenix/core/is_nullary.hpp:15,
from /opt/boost/1.53.0/include/boost/phoenix/core/actor.hpp:19,
from /opt/boost/1.53.0/include/boost/phoenix/core.hpp:15,
from /opt/boost/1.53.0/include/boost/phoenix/phoenix.hpp:11,
from /opt/boost/1.53.0/include/boost/phoenix.hpp:11,
from foo.cc:1:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1140:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1211:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1211:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1206:35: error: no match for call to ‘(std::_Mem_fn<void (Object::*)(std::vector<int>)>) (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1206:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<> >((* & std::declval<boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<>&>()))’ (type ‘boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1225:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1225:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1219:35: error: no match for call to ‘(const std::_Mem_fn<void (Object::*)(std::vector<int>)>) (const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, const boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1219:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<const boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<> >((* & std::declval<const boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<>&>()))’ (type ‘const boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1239:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) volatile [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1239:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1233:35: error: no match for call to ‘(volatile std::_Mem_fn<void (Object::*)(std::vector<int>)>) (volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, volatile boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1233:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<volatile boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<> >((* & std::declval<volatile boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<>&>()))’ (type ‘volatile boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1253:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const volatile [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1253:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1247:35: error: no match for call to ‘(const volatile std::_Mem_fn<void (Object::*)(std::vector<int>)>) (const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, const volatile boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1247:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<const volatile boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<> >((* & std::declval<const volatile boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<>&>()))’ (type ‘const volatile boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
In file included from /opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:21:0,
from /opt/boost/1.53.0/include/boost/spirit/home/qi/action.hpp:14,
from /opt/boost/1.53.0/include/boost/spirit/home/qi.hpp:14,
from /opt/boost/1.53.0/include/boost/spirit/include/qi.hpp:16,
from foo.cc:2:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp: In instantiation of ‘static void boost::spirit::traits::action_dispatch<Component>::caller(F&&, A&& ...) [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = {std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&}; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:153:13: required from ‘bool boost::spirit::traits::action_dispatch<Component>::operator()(const F&, Attribute&, Context&) [with F = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>; Attribute = std::vector<int>; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:126:17: required from ‘bool boost::spirit::qi::action<Subject, Action>::parse(Iterator&, const Iterator&, Context&, const Skipper&, boost::spirit::unused_type) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type; Subject = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >; Action = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:33:65: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::call(Iterator&, const Iterator&, Context&, const Skipper&, mpl_::true_) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:53:67: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::operator()(Iterator&, const Iterator&, Context&, const Skipper&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:132:42: required from ‘static R boost::detail::function::function_obj_invoker4<FunctionObj, R, T0, T1, T2, T3>::invoke(boost::detail::function::function_buffer&, T0, T1, T2, T3) [with FunctionObj = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:934:60: required from ‘void boost::function4<R, T1, T2, T3, T4>::assign_to(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:722:7: required from ‘boost::function4<R, T1, T2, T3, T4>::function4(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1069:16: required from ‘boost::function<R(T0, T1, T2, T3)>::function(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1124:5: required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:13: required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:13: required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>]’
foo.cc:23:53: required from here
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:111:21: note: template<class F, class A> static typename boost::spirit::traits::action_dispatch<Component>::fwd_storage<decltype (f((*(A*)(0)))), boost::spirit::traits::action_dispatch<Component>::fwd_attrib>::type boost::spirit::traits::action_dispatch::do_call(F&&, boost::spirit::traits::action_dispatch<Component>::fwd_tag<A>, ...) [with F = F; A = A; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:111:21: note: template argument deduction/substitution failed:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp: In substitution of ‘template<class F, class A> static typename boost::spirit::traits::action_dispatch<Component>::fwd_storage<decltype (f((*(A*)(0)))), boost::spirit::traits::action_dispatch<Component>::fwd_attrib>::type boost::spirit::traits::action_dispatch::do_call(F&&, boost::spirit::traits::action_dispatch<Component>::fwd_tag<A>, ...) [with F = F; A = A; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >] [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = std::vector<int>]’:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:142:13: required from ‘static void boost::spirit::traits::action_dispatch<Component>::caller(F&&, A&& ...) [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = {std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&}; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:153:13: required from ‘bool boost::spirit::traits::action_dispatch<Component>::operator()(const F&, Attribute&, Context&) [with F = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>; Attribute = std::vector<int>; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:126:17: required from ‘bool boost::spirit::qi::action<Subject, Action>::parse(Iterator&, const Iterator&, Context&, const Skipper&, boost::spirit::unused_type) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type; Subject = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >; Action = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:33:65: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::call(Iterator&, const Iterator&, Context&, const Skipper&, mpl_::true_) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:53:67: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::operator()(Iterator&, const Iterator&, Context&, const Skipper&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:132:42: [ skipping 2 instantiation contexts ]
/opt/boost/1.53.0/include/boost/function/function_template.hpp:722:7: required from ‘boost::function4<R, T1, T2, T3, T4>::function4(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1069:16: required from ‘boost::function<R(T0, T1, T2, T3)>::function(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1124:5: required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:13: required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:13: required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>]’
foo.cc:23:53: required from here
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:111:21: error: no match for call to ‘(const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>) (std::vector<int>&)’
In file included from /opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/memory:81:0,
from /opt/boost/1.53.0/include/boost/config/no_tr1/memory.hpp:21,
from /opt/boost/1.53.0/include/boost/get_pointer.hpp:14,
from /opt/boost/1.53.0/include/boost/proto/transform/default.hpp:21,
from /opt/boost/1.53.0/include/boost/phoenix/core/meta_grammar.hpp:17,
from /opt/boost/1.53.0/include/boost/phoenix/core/is_nullary.hpp:15,
from /opt/boost/1.53.0/include/boost/phoenix/core/actor.hpp:19,
from /opt/boost/1.53.0/include/boost/phoenix/core.hpp:15,
from /opt/boost/1.53.0/include/boost/phoenix/phoenix.hpp:11,
from /opt/boost/1.53.0/include/boost/phoenix.hpp:11,
from foo.cc:1:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1140:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1211:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1211:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1206:35: error: no match for call to ‘(std::_Mem_fn<void (Object::*)(std::vector<int>)>) (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1206:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&> >((* & std::declval<boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&>&>()))’ (type ‘boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1225:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1225:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1219:35: error: no match for call to ‘(const std::_Mem_fn<void (Object::*)(std::vector<int>)>) (const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, const boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1219:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<const boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&> >((* & std::declval<const boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&>&>()))’ (type ‘const boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1239:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) volatile [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1239:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1233:35: error: no match for call to ‘(volatile std::_Mem_fn<void (Object::*)(std::vector<int>)>) (volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, volatile boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1233:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<volatile boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&> >((* & std::declval<volatile boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&>&>()))’ (type ‘volatile boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1253:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const volatile [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1253:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1247:35: error: no match for call to ‘(const volatile std::_Mem_fn<void (Object::*)(std::vector<int>)>) (const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, const volatile boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1247:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<const volatile boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&> >((* & std::declval<const volatile boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&>&>()))’ (type ‘const volatile boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
In file included from /opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:21:0,
from /opt/boost/1.53.0/include/boost/spirit/home/qi/action.hpp:14,
from /opt/boost/1.53.0/include/boost/spirit/home/qi.hpp:14,
from /opt/boost/1.53.0/include/boost/spirit/include/qi.hpp:16,
from foo.cc:2:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp: In instantiation of ‘static void boost::spirit::traits::action_dispatch<Component>::caller(F&&, A&& ...) [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = {std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&}; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:153:13: required from ‘bool boost::spirit::traits::action_dispatch<Component>::operator()(const F&, Attribute&, Context&) [with F = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>; Attribute = std::vector<int>; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:126:17: required from ‘bool boost::spirit::qi::action<Subject, Action>::parse(Iterator&, const Iterator&, Context&, const Skipper&, boost::spirit::unused_type) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type; Subject = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >; Action = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:33:65: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::call(Iterator&, const Iterator&, Context&, const Skipper&, mpl_::true_) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:53:67: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::operator()(Iterator&, const Iterator&, Context&, const Skipper&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:132:42: required from ‘static R boost::detail::function::function_obj_invoker4<FunctionObj, R, T0, T1, T2, T3>::invoke(boost::detail::function::function_buffer&, T0, T1, T2, T3) [with FunctionObj = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:934:60: required from ‘void boost::function4<R, T1, T2, T3, T4>::assign_to(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:722:7: required from ‘boost::function4<R, T1, T2, T3, T4>::function4(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1069:16: required from ‘boost::function<R(T0, T1, T2, T3)>::function(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1124:5: required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:13: required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:13: required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>]’
foo.cc:23:53: required from here
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:119:21: note: template<class F, class A, class B> static typename boost::spirit::traits::action_dispatch<Component>::fwd_storage<decltype (f((*(A*)(0)), (*(B*)(0)))), boost::spirit::traits::action_dispatch<Component>::fwd_attrib_context>::type boost::spirit::traits::action_dispatch::do_call(F&&, boost::spirit::traits::action_dispatch<Component>::fwd_tag<A>, boost::spirit::traits::action_dispatch<Component>::fwd_tag<B>, ...) [with F = F; A = A; B = B; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:119:21: note: template argument deduction/substitution failed:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp: In substitution of ‘template<class F, class A, class B> static typename boost::spirit::traits::action_dispatch<Component>::fwd_storage<decltype (f((*(A*)(0)), (*(B*)(0)))), boost::spirit::traits::action_dispatch<Component>::fwd_attrib_context>::type boost::spirit::traits::action_dispatch::do_call(F&&, boost::spirit::traits::action_dispatch<Component>::fwd_tag<A>, boost::spirit::traits::action_dispatch<Component>::fwd_tag<B>, ...) [with F = F; A = A; B = B; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >] [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = std::vector<int>; B = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >]’:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:142:13: required from ‘static void boost::spirit::traits::action_dispatch<Component>::caller(F&&, A&& ...) [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = {std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&}; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:153:13: required from ‘bool boost::spirit::traits::action_dispatch<Component>::operator()(const F&, Attribute&, Context&) [with F = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>; Attribute = std::vector<int>; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:126:17: required from ‘bool boost::spirit::qi::action<Subject, Action>::parse(Iterator&, const Iterator&, Context&, const Skipper&, boost::spirit::unused_type) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type; Subject = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >; Action = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:33:65: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::call(Iterator&, const Iterator&, Context&, const Skipper&, mpl_::true_) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:53:67: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::operator()(Iterator&, const Iterator&, Context&, const Skipper&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:132:42: [ skipping 2 instantiation contexts ]
/opt/boost/1.53.0/include/boost/function/function_template.hpp:722:7: required from ‘boost::function4<R, T1, T2, T3, T4>::function4(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1069:16: required from ‘boost::function<R(T0, T1, T2, T3)>::function(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1124:5: required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:13: required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:13: required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>]’
foo.cc:23:53: required from here
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:119:21: error: no match for call to ‘(const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>) (std::vector<int>&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&)’
In file included from /opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/memory:81:0,
from /opt/boost/1.53.0/include/boost/config/no_tr1/memory.hpp:21,
from /opt/boost/1.53.0/include/boost/get_pointer.hpp:14,
from /opt/boost/1.53.0/include/boost/proto/transform/default.hpp:21,
from /opt/boost/1.53.0/include/boost/phoenix/core/meta_grammar.hpp:17,
from /opt/boost/1.53.0/include/boost/phoenix/core/is_nullary.hpp:15,
from /opt/boost/1.53.0/include/boost/phoenix/core/actor.hpp:19,
from /opt/boost/1.53.0/include/boost/phoenix/core.hpp:15,
from /opt/boost/1.53.0/include/boost/phoenix/phoenix.hpp:11,
from /opt/boost/1.53.0/include/boost/phoenix.hpp:11,
from foo.cc:1:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1140:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1211:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1211:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1206:35: error: no match for call to ‘(std::_Mem_fn<void (Object::*)(std::vector<int>)>) (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1206:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&> >((* & std::declval<boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&>&>()))’ (type ‘boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1225:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1225:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1219:35: error: no match for call to ‘(const std::_Mem_fn<void (Object::*)(std::vector<int>)>) (const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, const boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1219:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<const boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&> >((* & std::declval<const boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&>&>()))’ (type ‘const boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1239:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) volatile [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1239:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1233:35: error: no match for call to ‘(volatile std::_Mem_fn<void (Object::*)(std::vector<int>)>) (volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, volatile boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1233:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<volatile boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&> >((* & std::declval<volatile boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&>&>()))’ (type ‘volatile boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1253:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const volatile [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1253:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1247:35: error: no match for call to ‘(const volatile std::_Mem_fn<void (Object::*)(std::vector<int>)>) (const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, const volatile boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1247:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<const volatile boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&> >((* & std::declval<const volatile boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&>&>()))’ (type ‘const volatile boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
In file included from /opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:21:0,
from /opt/boost/1.53.0/include/boost/spirit/home/qi/action.hpp:14,
from /opt/boost/1.53.0/include/boost/spirit/home/qi.hpp:14,
from /opt/boost/1.53.0/include/boost/spirit/include/qi.hpp:16,
from foo.cc:2:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp: In instantiation of ‘static void boost::spirit::traits::action_dispatch<Component>::caller(F&&, A&& ...) [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = {std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&}; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:153:13: required from ‘bool boost::spirit::traits::action_dispatch<Component>::operator()(const F&, Attribute&, Context&) [with F = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>; Attribute = std::vector<int>; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:126:17: required from ‘bool boost::spirit::qi::action<Subject, Action>::parse(Iterator&, const Iterator&, Context&, const Skipper&, boost::spirit::unused_type) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type; Subject = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >; Action = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:33:65: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::call(Iterator&, const Iterator&, Context&, const Skipper&, mpl_::true_) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:53:67: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::operator()(Iterator&, const Iterator&, Context&, const Skipper&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:132:42: required from ‘static R boost::detail::function::function_obj_invoker4<FunctionObj, R, T0, T1, T2, T3>::invoke(boost::detail::function::function_buffer&, T0, T1, T2, T3) [with FunctionObj = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:934:60: required from ‘void boost::function4<R, T1, T2, T3, T4>::assign_to(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:722:7: required from ‘boost::function4<R, T1, T2, T3, T4>::function4(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1069:16: required from ‘boost::function<R(T0, T1, T2, T3)>::function(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1124:5: required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:13: required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:13: required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>]’
foo.cc:23:53: required from here
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:128:21: note: template<class F, class A, class B, class C> static typename boost::spirit::traits::action_dispatch<Component>::fwd_storage<decltype (f((*(A*)(0)), (*(B*)(0)), (*(C*)(0)))), boost::spirit::traits::action_dispatch<Component>::fwd_attrib_context_pass>::type boost::spirit::traits::action_dispatch::do_call(F&&, boost::spirit::traits::action_dispatch<Component>::fwd_tag<A>, boost::spirit::traits::action_dispatch<Component>::fwd_tag<B>, boost::spirit::traits::action_dispatch<Component>::fwd_tag<C>, ...) [with F = F; A = A; B = B; C = C; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:128:21: note: template argument deduction/substitution failed:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp: In substitution of ‘template<class F, class A, class B, class C> static typename boost::spirit::traits::action_dispatch<Component>::fwd_storage<decltype (f((*(A*)(0)), (*(B*)(0)), (*(C*)(0)))), boost::spirit::traits::action_dispatch<Component>::fwd_attrib_context_pass>::type boost::spirit::traits::action_dispatch::do_call(F&&, boost::spirit::traits::action_dispatch<Component>::fwd_tag<A>, boost::spirit::traits::action_dispatch<Component>::fwd_tag<B>, boost::spirit::traits::action_dispatch<Component>::fwd_tag<C>, ...) [with F = F; A = A; B = B; C = C; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >] [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = std::vector<int>; B = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; C = bool]’:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:142:13: required from ‘static void boost::spirit::traits::action_dispatch<Component>::caller(F&&, A&& ...) [with F = const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&; A = {std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&}; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:153:13: required from ‘bool boost::spirit::traits::action_dispatch<Component>::operator()(const F&, Attribute&, Context&) [with F = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>; Attribute = std::vector<int>; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Component = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:126:17: required from ‘bool boost::spirit::qi::action<Subject, Action>::parse(Iterator&, const Iterator&, Context&, const Skipper&, boost::spirit::unused_type) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Skipper = boost::spirit::unused_type; Subject = boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >; Action = std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:33:65: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::call(Iterator&, const Iterator&, Context&, const Skipper&, mpl_::true_) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:53:67: required from ‘bool boost::spirit::qi::detail::parser_binder<Parser, Auto>::operator()(Iterator&, const Iterator&, Context&, const Skipper&) const [with Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; Skipper = boost::spirit::unused_type; Context = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >; Parser = boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >; Auto = mpl_::bool_<false>]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:132:42: [ skipping 2 instantiation contexts ]
/opt/boost/1.53.0/include/boost/function/function_template.hpp:722:7: required from ‘boost::function4<R, T1, T2, T3, T4>::function4(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1069:16: required from ‘boost::function<R(T0, T1, T2, T3)>::function(Functor, typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, int>::type = int]’
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1124:5: required from ‘typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type boost::function<R(T0, T1, T2, T3)>::operator=(Functor) [with Functor = boost::spirit::qi::detail::parser_binder<boost::spirit::qi::action<boost::spirit::qi::kleene<boost::spirit::qi::reference<const boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >; R = bool; T0 = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T1 = const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&; T2 = boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&; T3 = const boost::spirit::unused_type&; typename boost::enable_if_c<boost::type_traits::ice_not<boost::is_integral<Functor>::value>::value, boost::function<R(T0, T1, T2, T3)>&>::type = boost::function<bool(__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, const __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&, const boost::spirit::unused_type&)>&]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:13: required from ‘static void boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::define(boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>&, const Expr&, mpl_::true_) [with Auto = mpl_::bool_<false>; Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>; mpl_::true_ = mpl_::bool_<true>]’
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:13: required from ‘boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>& boost::spirit::qi::rule<Iterator, T1, T2, T3, T4>::operator=(const Expr&) [with Expr = boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, int()>&>, 1l>&, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>&>, 0l> >, 2l>; Iterator = __gnu_cxx::__normal_iterator<char*, std::basic_string<char> >; T1 = std::shared_ptr<Object>(); T2 = boost::spirit::unused_type; T3 = boost::spirit::unused_type; T4 = boost::spirit::unused_type; boost::spirit::qi::rule<Iterator, T1, T2, T3, T4> = boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char*, std::basic_string<char> >, std::shared_ptr<Object>()>]’
foo.cc:23:53: required from here
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:128:21: error: no match for call to ‘(const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int>)>(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >)>) (std::vector<int>&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<> >&, bool&)’
In file included from /opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/memory:81:0,
from /opt/boost/1.53.0/include/boost/config/no_tr1/memory.hpp:21,
from /opt/boost/1.53.0/include/boost/get_pointer.hpp:14,
from /opt/boost/1.53.0/include/boost/proto/transform/default.hpp:21,
from /opt/boost/1.53.0/include/boost/phoenix/core/meta_grammar.hpp:17,
from /opt/boost/1.53.0/include/boost/phoenix/core/is_nullary.hpp:15,
from /opt/boost/1.53.0/include/boost/phoenix/core/actor.hpp:19,
from /opt/boost/1.53.0/include/boost/phoenix/core.hpp:15,
from /opt/boost/1.53.0/include/boost/phoenix/phoenix.hpp:11,
from /opt/boost/1.53.0/include/boost/phoenix.hpp:11,
from foo.cc:1:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1140:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1211:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1211:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1206:35: error: no match for call to ‘(std::_Mem_fn<void (Object::*)(std::vector<int>)>) (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1206:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&> >((* & std::declval<boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&>&>()))’ (type ‘boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1225:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1225:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1219:35: error: no match for call to ‘(const std::_Mem_fn<void (Object::*)(std::vector<int>)>) (const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, const boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘const boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1219:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<const boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&> >((* & std::declval<const boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&>&>()))’ (type ‘const boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1239:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) volatile [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1239:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1233:35: error: no match for call to ‘(volatile std::_Mem_fn<void (Object::*)(std::vector<int>)>) (volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, volatile boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1233:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<volatile boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&> >((* & std::declval<volatile boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&>&>()))’ (type ‘volatile boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1253:2: note: template<class ... _Args, class _Result> _Result std::_Bind<_Functor(_Bound_args ...)>::operator()(_Args&& ...) const volatile [with _Args = {_Args ...}; _Result = _Result; _Functor = std::_Mem_fn<void (Object::*)(std::vector<int>)>; _Bound_args = {boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >, boost::phoenix::actor<boost::spirit::argument<0> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1253:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1247:35: error: no match for call to ‘(const volatile std::_Mem_fn<void (Object::*)(std::vector<int>)>) (const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >&, const volatile boost::phoenix::actor<boost::spirit::argument<0> >&)’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:525:11: note: candidates are:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class&, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:548:7: note: no known conversion for argument 1 from ‘const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object&’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Class*, _ArgTypes ...) const [with _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:553:7: note: no known conversion for argument 1 from ‘const volatile boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1l> >’ to ‘Object*’
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template<class _Tp> _Res std::_Mem_fn<_Res (_Class::*)(_ArgTypes ...)>::operator()(_Tp&, _ArgTypes ...) const [with _Tp = _Tp; _Res = void; _Class = Object; _ArgTypes = {std::vector<int, std::allocator<int> >}]
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:559:2: note: template argument deduction/substitution failed:
/opt/gcc/4.7.1/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/../../../../include/c++/4.7.1/functional:1247:35: note: cannot convert ‘std::_Mu<boost::phoenix::actor<boost::spirit::argument<0> >, false, false>().std::_Mu<_Arg, false, false>::operator()<const volatile boost::phoenix::actor<boost::spirit::argument<0> >&, std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&> >((* & std::declval<const volatile boost::phoenix::actor<boost::spirit::argument<0> >&>()), (* & std::declval<std::tuple<std::vector<int, std::allocator<int> >&, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object>&, boost::fusion::nil>, boost::fusion::vector0<void> >&, bool&>&>()))’ (type ‘const volatile boost::phoenix::actor<boost::spirit::argument<0> >’) to type ‘std::vector<int>’
[1:59pm][wlynch@apple /tmp]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment