Boost-1.42.0 と VS2005 で配布された Boost.Spirit を使用しています。私の問題はこのようなものです。
コンマで区切られたこの文字列があります。最初の 3 つのフィールドは文字列で、残りは数値です。このような。
String1,String2,String3,12.0,12.1,13.0,13.1,12.4
私のルールはこんな感じです
qi::rule<string::iterator, qi::skip_type> stringrule = *(char_ - ',')
qi::rule<string::iterator, qi::skip_type> myrule= repeat(3)[*(char_ - ',') >> ','] >> (double_ % ',') ;
このような構造にデータを格納しようとしています。
struct MyStruct
{
vector<string> stringVector ;
vector<double> doubleVector ;
} ;
MyStruct var ;
BOOST_FUSION_ADAPT_STRUCTURE でラップして、精神的に使用します。
BOOST_FUSION_ADAPT_STRUCT (MyStruct, (vector<string>, stringVector) (vector<double>, doubleVector))
My parse function parses the line and returns true and after
qi::phrase_parse (iterBegin, iterEnd, myrule, boost::spirit::ascii::space, var) ;
I'm expecting var.stringVector and var.doubleVector are properly filled. but it is not the case.
What is going wrong ?
The code sample is located here
Thanks in advance, Surya