
Hi, I have some trouble to retreive error parsing information using qi::on_error<fail> to work on a std::string. The documentation propose the following code : on_error<fail> ( start , std::cout << val("constituent: expected ") << _4 // what failed? << val(" here: \"") << constructstd::string(_3, _2) // iterators to error-pos, end << val("\"") << std::endl ); * On my First attempt. I have define a class member (std::stringstream m_error) in my grammar class and replace std::cout by phx::ref(m_error). But this code generate a compilation error * For the second attempt, I declare class member m_error as std::string and use this error handler: namespace qi = boost::spirit::qi; namespace phx = boost::phoenix; on_error< qi::fail> ( start , phx::ref(m_error) = ( phx::constructstd::string(phx::val("Error! Expecting ")) // + qi::_4 REMARK1 + phx::constructstd::string( phx::val(" here: \"") ) + phx::constructstd::string(qi::_3, qi::_2) + phx::constructstd::string( phx::val("\"") ) ) ); that's work perfectly. On error my string is correctly filled. But my problem is that I can't get the expected token (_4) (REMARK1), If I uncomment line REMARK1, I get a compilation error, same result using the code phx::constructstd::string(qi::_4). How can a get qi::_4 as string ? Can any one with kindness help me?