0
我想使用boost::spirit
將整數序列解析爲std::vector<int>
。整數可以用分號或換行符分隔。使用boost :: spirit將分析元素分解爲矢量,使用分號或換行符作爲分隔符
不過此語法並不編譯:
typedef std::vector<int> IntVec;
template <typename Iterator, typename Skipper>
struct MyGrammar : qi::grammar<Iterator, IntVec(), Skipper> {
MyGrammar() : MyGrammar::base_type(start) {
start = +(qi::int_
>> (";" | qi::no_skip(qi::eol)));
}
qi::rule<Iterator, IntVec(), Skipper> start;
};
要清楚,我想分析如下輸入,例如,
1; 2; 3
4 ; 5
到一個載體中(1,2,3,4,5)
。我該怎麼做,爲什麼我的版本不能編譯?
我可以以某種方式將分隔符(「分號或換行符」)寫爲自己的規則嗎?它的返回類型是什麼?某種null
值?
您的聲譽和徽章是如此特別:)我會打印屏幕! –