// g++ -g -std=c++11 -dboost_spirit_use_phoenix_v3 Test.C | & tee build.log // #include #include #include #include #include #include #include #include #include #include #include #include #include typedef std::vector Attribute; int main() { using namespace boost::spirit::qi; using namespace boost::phoenix; typedef std::vector Attribute; const std::string str = "10\nABCDEFGHIJ"; typedef std::string::const_iterator iterator; iterator it = str.begin(); Attribute attr; boost::spirit::qi::rule, space_type> r; r %= omit[ int_[_a = _1] ] >> lexeme[ repeat(_a)[ char_ ] ]; const bool result = boost::spirit::qi::phrase_parse(it,str.end(), r, space, attr); std::cerr << result << std::endl; std::cerr << attr.size() << std::endl; std::cerr << '"'; for (auto c : attr) std::cerr << c; std::cerr << '"' << std::endl; }