Hello, Playing with spirit-2 (boost 1.36 release) I got the following code to ASSERT when compiled on Visual Studio 2008/SP1. Any ideas what's wrong? ---------------------------------------------------------- #include #include #include #include #include #include #include #include #include using namespace boost::spirit; using namespace boost::spirit::qi; using namespace boost::spirit::ascii; using namespace boost::spirit::arg_names; namespace phoenix = boost::phoenix; using phoenix::at_c; struct key_val { std::string key; std::string value; }; BOOST_FUSION_ADAPT_STRUCT( key_val, (std::string, key) (std::string, value) ) template struct my_grammar : grammar { my_grammar() : my_grammar::base_type(start) { quoted_string %= lexeme['"' >> +(char_ - '"') >> '"']; key %= quoted_string; value %= quoted_string; start = key [at_c<0>(_val) = _1] >> ':' >> value [at_c<1>(_val) = _1] ; } rule key; rule quoted_string; rule value; rule start; }; int main() { typedef std::string::const_iterator citerator; std::string str = "\"x\": \"25\" "; citerator iter = str.begin(); citerator end = str.end(); my_grammar my_parser; key_val kv; phrase_parse(iter, end, my_parser, kv, space); // ASSERTs return 0; } -------------------------------------------------------------------------- thanks

View this message in context: [spirit2] Trivial parser crashes
Sent from the Boost - Users mailing list archive at Nabble.com.