Boost logo

Boost Users :

From: Patrick Gräbel (pgraebel_at_[hidden])
Date: 2007-07-07 21:27:07


I am using Cygwin's g++ 3.4.4 and the official Cygwin Boost package
version 1.33.1. This minimal programm

  using namespace boost::spirit;
  rule< > r;
  r = real_p;
  bool b = parse(inp.c_str(),r,space_p).full;

produces the following error:

g++ -c -o objs/src/Main.o -D__cygwin__ -O -Isrc -Ilibutil/include
-Ilibrsrc/include src/Main.cpp
/usr/include/boost/spirit/core/scanner/impl/skipper.ipp:173:
instantiated from `boost::spirit::parse_info<const CharT*>
boost::spirit::parse(const CharT*, const
boost::spirit::parser<DerivedT>&, const boost::spirit::parser<SkipT>&)
[with CharT = char, ParserT = boost::spirit::rule<boost::spirit::nil_t,
boost::spirit::nil_t, boost::spirit::nil_t>, SkipT =
boost::spirit::space_parser]'
src/Main.cpp:16: instantiated from here
/usr/include/boost/spirit/core/non_terminal/impl/rule.ipp:189: error: no
matching function for call to
`boost::spirit::impl::abstract_parser<boost::spirit::scanner<const
char*, boost::spirit::scanner_policies<boost::spirit::iteration_policy,
boost::spirit::match_policy, boost::spirit::action_policy> >,
boost::spirit::nil_t>::do_parse_virtual(const
boost::spirit::scanner<const char*, boost::spirit::scanner_policies_t>&)'

Using the parser expression directly works without problems:

  bool b = parse(inp.c_str(),real_p,space_p).full;

What am I doing wrong?

Thanks,
Patrick.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net