Skip to content

Instantly share code, notes, and snippets.

Created March 10, 2013 18:58
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/63bab7cee511c6d62fa2 to your computer and use it in GitHub Desktop.
Save anonymous/63bab7cee511c6d62fa2 to your computer and use it in GitHub Desktop.
[1:55pm][wlynch@apple /tmp] /opt/llvm/3.2/bin/clang++ -gcc-toolchain /opt/gcc/4.7.2 -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 foo.cc:2:
In file included from /opt/boost/1.53.0/include/boost/spirit/include/qi.hpp:16:
In file included from /opt/boost/1.53.0/include/boost/spirit/home/qi.hpp:14:
In file included from /opt/boost/1.53.0/include/boost/spirit/home/qi/action.hpp:14:
In file included from /opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:21:
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:142:13: error: no matching function for call to 'do_call'
do_call(f, fwd_tag<typename std::remove_reference<A>::type>()...)
^~~~~~~
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:153:13: note: in instantiation of function template specialization
'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 (),
boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> > > >::caller<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)>
(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >,
boost::phoenix::actor<boost::spirit::argument<0> >)> &, std::vector<int, std::allocator<int> > &, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object> &, boost::fusion::nil>,
boost::fusion::vector0<void> > &, bool &>' requested here
caller(f, attr, context, pass);
^
/opt/boost/1.53.0/include/boost/spirit/home/qi/action/action.hpp:126:21: note: in instantiation of function template specialization
'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 (),
boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> > > >::operator()<std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)>
(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >,
boost::phoenix::actor<boost::spirit::argument<0> >)>, std::vector<int, std::allocator<int> >, boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object> &, boost::fusion::nil>,
boost::fusion::vector0<void> > >' requested here
if (traits::action_dispatch<Subject>()(f, attr, context))
^
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:33:22: note: in instantiation of function template specialization
'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 (),
boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)>
(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >,
boost::phoenix::actor<boost::spirit::argument<0> >)> >::parse<__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<void> >, boost::spirit::unused_type>' requested here
return p.parse(first, last, context, skipper, unused);
^
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/detail/parser_binder.hpp:53:20: note: in instantiation of function template specialization
'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 (), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int,
std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> >
>, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >::call<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >, boost::spirit::unused_type,
boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object> &, boost::fusion::nil>, boost::fusion::vector0<void> > >' requested here
return call(first, last, context, skipper, auto_rule());
^
/opt/boost/1.53.0/include/boost/function/function_template.hpp:132:18: note: in instantiation of function template specialization
'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 (), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> > >, std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int,
std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> >
>, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> >::operator()<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >, boost::spirit::unused_type,
boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object> &, boost::fusion::nil>, boost::fusion::vector0<void> > >' requested here
return (*f)(BOOST_FUNCTION_ARGS);
^
/opt/boost/1.53.0/include/boost/function/function_template.hpp:934:53: note: (skipping 2 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
{ { &manager_type::manage }, &invoker_type::invoke };
^
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1069:5: note: in instantiation of function template specialization 'boost::function4<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<void> > &, const boost::spirit::unused_type
&>::function4<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 (), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> > >,
std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> > >' requested here
base_type(f)
^
/opt/boost/1.53.0/include/boost/function/function_template.hpp:1124:5: note: in instantiation of function template specialization '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<void> > &, const boost::spirit::unused_type
&)>::function<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 (), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> > >,
std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> > >' requested here
self_type(f).swap(*this);
^
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:182:19: note: in instantiation of function template specialization '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<void> > &, const boost::spirit::unused_type
&)>::operator=<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 (), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> > >,
std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> >, mpl_::bool_<false> > >' requested here
lhs.f = detail::bind_parser<Auto>(
^
/opt/boost/1.53.0/include/boost/spirit/home/qi/nonterminal/rule.hpp:220:13: note: in instantiation of function template specialization 'boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char *,
std::basic_string<char> >, std::shared_ptr<Object> (), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type>::define<mpl_::bool_<false>,
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 (), boost::spirit::unused_type, boost::spirit::unused_type,
boost::spirit::unused_type> &>, 1> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int,
std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> >
>, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> &>, 0> >, 2> >' requested here
define<mpl::false_>(*this, expr, traits::matches<qi::domain, Expr>());
^
foo.cc:23:3: note: in instantiation of function template specialization 'boost::spirit::qi::rule<__gnu_cxx::__normal_iterator<char *, std::basic_string<char> >, std::shared_ptr<Object> (),
boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type>::operator=<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 (),
boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> &>, 1> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const
std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> &>, 0> >, 2> >' requested here
= (*integer) [bind(&Object::initialize, *_val, _1)];
^
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:104:21: note: candidate template ignored: substitution failure [with F = const std::_Bind<std::_Mem_fn<void
(Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> &]: no matching function for call to object of type
'const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)>'
static auto do_call(F && f, ...)
^
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:111:21: note: candidate template ignored: substitution failure [with F = const std::_Bind<std::_Mem_fn<void
(Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> &, A = std::vector<int, std::allocator<int> >]: no
matching function for call to object of type 'const std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)>
(boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference, boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >,
boost::phoenix::actor<boost::spirit::argument<0> >)>'
static auto do_call(F && f, fwd_tag<A>, ...)
^
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:119:21: note: candidate template ignored: substitution failure [with F = const std::_Bind<std::_Mem_fn<void
(Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> &, A = std::vector<int, std::allocator<int> >, B =
boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object> &, boost::fusion::nil>, boost::fusion::vector0<void> >]: no matching function for call to object of type 'const
std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)>'
static auto do_call(F && f, fwd_tag<A>, fwd_tag<B>, ...)
^
/opt/boost/1.53.0/include/boost/spirit/home/support/action_dispatch.hpp:128:21: note: candidate template ignored: substitution failure [with F = const std::_Bind<std::_Mem_fn<void
(Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)> &, A = std::vector<int, std::allocator<int> >, B =
boost::spirit::context<boost::fusion::cons<std::shared_ptr<Object> &, boost::fusion::nil>, boost::fusion::vector0<void> >, C = bool]: no matching function for call to object of type 'const
std::_Bind<std::_Mem_fn<void (Object::*)(std::vector<int, std::allocator<int> >)> (boost::phoenix::actor<boost::proto::exprns_::expr<boost::proto::tagns_::tag::dereference,
boost::proto::argsns_::list1<boost::phoenix::actor<boost::spirit::attribute<0> > >, 1> >, boost::phoenix::actor<boost::spirit::argument<0> >)>'
static auto do_call(F && f, fwd_tag<A>, fwd_tag<B>, fwd_tag<C>, ...)
^
1 error generated.
[1:57pm][wlynch@apple /tmp]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment