- 254 名前:232 mailto:sage [2009/10/01(木) 12:57:19 ]
- boost::spirit でまた躓いてしまいました。
parse_info<> pi; pi = parse("12.", real_p); // 12. ドットに注意 ASSERT(pi.full); ASSERT(pi.length == 3); // 止まる。実際は 2 が入っている。 pi = parse("12.", longest_d[real_p | int_p]); ASSERT(pi.full); // 止まる デバッガで追うと、確かにドットの後に数値が無ければ、length はインクリメントされてないんですが、 scanner の first (scan.first) はドット文字の次を指したまま return しています。 length と 実際に進めた幅とが一致しない状態というのは許されるんでしょうか?また、上の二つの parse で、下は失敗するのはおかしいと思うのですが、勘違いでしょうか? Win7x64 VC++9 boost1.40.0
|

|