VS2005와 함께 Boost-1.42.0과 함께 배포 된 Boost.Spirit을 사용하고 있습니다. 내 문제는 이것과 같다.Boost Spirit 2를 사용하여 사용자 정의 구조체의 데이터를 채우는 구문 분석 문자열
나는이 문자열을 쉼표로 구분했습니다. 처음 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))
내 구문 분석 함수는 라인을 구문 분석하고 true를 돌려
qi::phrase_parse (iterBegin, iterEnd, myrule, boost::spirit::ascii::space, var) ;
후 나는 var.stringVector과 var.doubleVector가 제대로 채워 기대하고있다. 그러나 그것은 사실이 아닙니다.
무엇이 잘못 되었나요?
코드 샘플이 사전에 here
감사합니다, 수르야
문제를 재현 할 수있는 지속적이고 편집 가능한 코드 스 니펫을 게시 할 수 있다면 더 많은 사람들이보고 도움을 얻을 수 있습니다. –
소스 코드 샘플은 pastebin 사이트에서 제공됩니다. http://www.pastebin.org/117703 – Surya