Boostってすごくね?
各所で話題のkeyword:Boostを試してみる。
とりあえず参照カウント付きスマートポインタであるshared_ptrだけのためでも使う価値はある。オブジェクトのライフタイムを気にしなくて言いというのは楽だ。std::auto_ptrはSTLのコンテナに対応していない弱点があったけどこいつは大丈夫ってのも大きい。
lexical_castを使えば文字列と数値の相互変換を
double pi = 3.141592653589793; string pi_str = lexical_cast<string>( pi );
と標準のキャストと同じ形式で書けてしまう。printfやatoiで変換するよりも格段にすっきりする。
Mersenne Twister法やLagged Fibonacci法をサポートする擬似乱数生成クラスrandomとか、メモリプールをサポートするpoolなど、ゲーム製作に役立つクラスも盛り沢山。何故かクォータニオンのクラスまであるそうな。
他にも正規表現を扱うregex、BNF記法っぽい表記で構文解析を可能にするspirit等・・・なんでもありっぽいですな。C++のtemplateや演算子オーバーライドをフル活用すればこんなこともできるんだ!と。spiritの実装なんてどうなってるのか見当もつかない。
というわけで役に立つサイトリンク
- 公式 Boost C++ Libraries
- 日本語リファレンス Boost Libraries
- 日本語での解説 Let's Boost
- お役立ちリンク http://user.ecc.u-tokyo.ac.jp/~s31552/wp/boost/link.html