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); }
参照: