Boost.Spirit.Qi ストリームの入力からパース

Spirit.Qiでは、文字列(のイテレータ)からのパースだけでなく、
ストリームからのパースもサポートしているようです。

#include <cassert>
#include <sstream>
#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/qi_match.hpp>

namespace qi = boost::spirit::qi;

int main()
{
    std::stringstream ss;
    ss << "(123)";

    int result;
    ss >> qi::match('(' >> qi::int_ >> ')', result);

    assert(result == 123);
}


参照:

Stream Based Parser API