\r + BOM


Boost.Spiritで,コマンドラインでデータを渡すとうまくいくのに,ファイルから読んでデータを渡すとうまくいかない.


きっとこれはwindowsのせいだ!


などと勝手に決め込んで調査したらそうでしたw

先頭にBOM,最後にキャリッジリターンがありました.

両方boost::spirit::cntrl_pでhitします.


boost::spirit::rule r = !cntrl_p >> ch_p(L"[") >> (+~ch_p(L"]"))[assign_a(ret)] >> ch_p(L"]") >> !cntrl_p;

// []で囲った文字列


んー,これも便利.


後で忘れないようにメモとして書かなくちゃ.