2011-01-01から1年間の記事一覧
正規表現の文字列を正規表現ライブラリへ渡す前にフィルタリングしたくなったので正規表現自体の正規表現を書いてみました。 つまり事前に必要の無い表現を弾いたり、新たな表現を追加したりなんて事がしたいわけです。 記述に当たって普通の正規表現で書こ…
adjacency_listのグラフをコピーする際に注意することがあります。 VertexListにlistSなど指定しているとvertex_descriptorはコピー先で使用できないということです。vecSの場合vertex_descriptorは整数インデックスなので問題ないと思いますが他はポインタ…
つまり以下のようになる。 template <int N> void Function(); void Call(int n /* 0-2 */) { if (n == 0) { Function<0>(); } else if (n == 1) { Function<1>(); } else if (n == 2) { Function<2>(); } } Callに渡された変数nに対応するFunctionを呼び出す。 予</int>…
関数の戻り値などで複数の状態を表したい場合、enumを使うのが正しい方法だと思います。 しかしながらついついint型を使用して-1だとか2だとかを直接書いてしまったりします。でもこれはなるべく避けたいところです。 そこでマルチキャラクタリテラルが使え…
よく文字列やバッファを扱う関数でchar*とunsigned char*が変換できずに(char*)とか書いてませんか? これはかなり危険な書き方なのでやめた方がいいです。C形式のキャストをやめてC++形式のキャストを使っても危ないです。 static_castだと変換できません。…
C++にもstatic ifが欲しいと思い作ってみましたが、かなり苦戦しました。 やっぱり言語ネイティブでサポートして欲しいですね。C++0xの規格の範囲ではどうやっても無理そうで、gccの挙動に依存してます。 STATIC_IF library for C++ · GitHub 利点 static if…