0
我想解析一個雙精度序列的字符串到具有Boost Spirit的std :: map 中。如何使用Boost Spirit從std :: string中提取雙對?
我改編自 http://svn.boost.org/svn/boost/trunk/libs/spirit/example/qi/key_value_sequence.cpp 的例子,但我有difining適當補氣::規則鍵和值的一個問題:
template <typename Iterator>
struct keys_and_values : qi::grammar<Iterator, std::map<double, double> >
{
keys_and_values()
: keys_and_values::base_type(query)
{
query = pair >> *(qi::lit(',') >> pair);
pair = key >> value;
key = qi::double_;
value = +qi::double_;
}
qi::rule<Iterator, std::map<double, double>()> query;
qi::rule<Iterator, std::pair<double, double>()> pair;
qi::rule<Iterator, std::string()> key, value;
};
我不能雙用()爲鍵和值規則和std :: string不能從012構造。
是的,這作品。謝謝! – 2010-09-08 19:14:48