Boost 1.34 のスキップパーサー

昨日のBoost 1.34で上手くパースできない問題ですが、CVSの履歴を二分探索で追ったところ、2005/10/18の変更が影響していました。
http://boost.cvs.sourceforge.net/boost/boost/boost/spirit/core/scanner/impl/skipper.ipp?r1=1.8&r2=1.9


Boost 1.33.1までは、最後のフレーズの後にもスキップパーサーが呼ばれていました。

// Boost 1.34でもOK
assert(parse("1 2 3", *int_p, space_p).full);

// Boost 1.33.1ではOK
assert(parse("1 2 3 ", *int_p, space_p).full);

ところが、Boost 1.34では末尾の空白類が許されていないようです。
CVSのログでは「No Postskips」と書かれているので、仕様変更なのでしょう。


Boost 1.34で動かすには、末尾の空白類を手動で取り除けば、とりあえず上手くいきます。

// Boost 1.34でもOK
parse("1 2 3 ", *int_p >> lexeme_d[!space_p], space_p);

う〜ん、不便ですね。