Boost

Boost.Spirit scanner_list

id:fifth_moon:20060711:1152633511 のもうひとつの解。 boost::spirit::scanner_list を使う ちゃんと http://www.boost.org/libs/spirit/doc/faq.html#lexeme_and_rules にも書いてあるし、http://www.boost.org/libs/spirit/doc/techniques.html#multiple…

Boost.Spirit

スキップパーサで blank_p を指定して空白を飛ばしているときに、空白込みの文字レベル解析するには lexeme_d ディレクティブを使う。 が、lexeme_d[*(print_p)] はコンパイル通るのに lexemed[*(print_p | utf8_multi_char)] みたいに自分定義のパーサ被せ…

boost::static_visitor

static_visitor の operator() には const を付けないとエラーになる。 struct : public boost::static_visitor<> { template void operator()(T& v) const { v.somothing(); } };