Boost logo

Boost :

From: Vyacheslav E. Andrejev (vandrejev_at_[hidden])
Date: 2004-11-03 04:19:14

Hi All,

boost::spirit::select_p parser can not be compiled with boost::spirit::rule
as argument.

The problem is that metafunction
boost::spirit::impl::as_embedded_parser<ParserT> returns const reference to
boost::spirit::rule, not boost::spirit::rule itself, when PaerserT =
boost::spirit::rule. So trying to compile
parser_result<as_embedded_parser<rule<> > > deep inside the select_p
implementation generates error message that const rule<>& has no

I suggest to change parser_result definition as following:

    template <typename ParserT, typename ScannerT>
    struct parser_result
      typedef typename boost::remove_reference<ParserT>::type::template
result<ScannerT>::type type;

Vyacheslav E. Andrejev
System Architect, Excelsior, LLC

Boost list run by bdawes at, gregod at, cpdaniel at, john at