Boost logo

Boost :

From: James W. Walker (osx_at_[hidden])
Date: 2003-08-31 02:04:43


If I try to compile something like

rule<> goofy = real_p >> real_p;
bool isOK = parse( "12 1.3", goofy, space_p ).full;

with CodeWarrior 8.3, I get an error message that I don't understand,
reproduced below. If I write the rule inline, like

bool isOK = parse( "12 1.3", real_p >> real_p, space_p ).full;

then it compiles OK, but that's a bit limiting. Any clues?

Error : function call '[const
boost::spirit::rule<boost::spirit::scanner<const char *,
boost::spirit::scanner_policies<boost::spirit::iteration_policy,
boost::spirit::match_policy, boost::spirit::action_policy>>,
boost::spirit::parser_context,
boost::spirit::parser_address_tag>].parse({lval}
boost::spirit::scanner<const char *,
boost::spirit::scanner_policies<boost::spirit::
skipper_iteration_policy<boost::spirit::iteration_policy>,
boost::spirit::match_policy, boost::spirit::action_policy>>)' does not
match
'boost::spirit::rule<boost::spirit::scanner<const char *,
boost::spirit::scanner_policies<boost::spirit::iteration_policy,
boost::spirit::match_policy, boost::spirit::action_policy>>,
boost::spirit::parser_context,
boost::spirit::parser_address_tag>::parse(const
boost::spirit::scanner<const char *,
boost::spirit::scanner_policies<boost::spirit::iteration_policy,
boost::spirit::match_policy, boost::spirit::action_policy>> &) const'
(non-static)
  (point of instantiation: 'main()')
   (instantiating: 'boost::spirit::parse<char,
boost::spirit::rule<boost::spirit::scanner<const char *,
boost::spirit::scanner_policies<boost::spirit::iteration_policy,
boost::spirit::match_policy, boost::spirit::action_policy>>,
boost::spirit::parser_context, boost::spirit::parser_address_tag>,
boost::spirit::space_parser>(const char *, const
boost::spirit::parser<boost::spirit::rule<boost::spirit::scanner<const
char *,
boost::spirit::scanner_policies<boost::spirit::iteration_policy,
boost::spirit::match_policy, boost::spirit::action_policy>>,
boost::spirit::parser_context, boost::spirit::parser_address_tag>> &,
const boost::spirit::parser<boost::spirit::space_parser> &)')
    (instantiating: 'boost::spirit::parse<const char *,
boost::spirit::rule<boost::spirit::scanner<const char *,
boost::spirit::scanner_policies<boost::spirit::iteration_policy,
boost::spirit::match_policy, boost::spirit::action_policy>>,
boost::spirit::parser_context, boost::spirit::parser_address_tag>,
boost::spirit::space_parser>(const char *const &, const char *const &,
const
boost::spirit::parser<boost::spirit::rule<boost::spirit::scanner<const
char *,
boost::spirit::scanner_policies<boost::spirit::iteration_policy,
boost::spirit::match_policy, boost::spirit::action_policy>>,
boost::spirit::parser_context, boost::spirit::parser_address_tag>> &,
const boost::spirit::parser<boost::spirit::space_parser> &)')
     (instantiating:
'boost::spirit::impl::phrase_parser<boost::spirit::space_parser>::
parse<const char *, boost::spirit::rule<boost::spirit::scanner<const
char *,
boost::spirit::scanner_policies<boost::spirit::iteration_policy,
boost::spirit::match_policy, boost::spirit::action_policy>>,
boost::spirit::parser_context,
boost::spirit::parser_address_tag>>(const char *const &, const char
*const &, const boost::spirit::rule<boost::spirit::scanner<const char
*, boost::spirit::scanner_policies<boost::spirit::iteration_policy,
boost::spirit::match_policy, boost::spirit::action_policy>>,
boost::spirit::parser_context, boost::spirit::parser_address_tag> &,
const boost::spirit::space_parser &)')
skipper.ipp line 133 match<nil_t> hit = p.parse(scan);

--
<http://www.jwwalker.com/>

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk