概略
Boostとは?
C++の準標準ライブラリともいえるライブラリであり、それらを生み出しているコミュニティのこと。ちなみに、C++0xの多くの仕様はBoost由来である。中身はテンプレートのマジック。多くの機能がヘッダを読み込むだけで使える。
Boost Software License
Boostライブラリのソフトウェアライセンス。商用でも使える緩いライセンス。
Boost メモ
よく使う機能をメモしておく。
shared_ptr<T>
説明
参照カウント方式のスマートポインタを提供する。型を指定することであたかもその型のポインタのようにアクセスできる。shared_ptr<void>を用いれば汎用ポインタにもなる。なお、循環参照はご法度。そういう可能性がある場合にはweak_ptrを駆使する。なお、COMのようなすでに参照カウント機能を持つクラスには、侵入型のスマートポインタもある。
例
Under Construction
lexical_cast<T>
説明
文字列から数値、数値から文字列といった変換機能を提供する。
例
Under Construction
numeric::ublas::xxx
説明
BLAS、つまり行列ライブラリ。まだまだ使いこなせていない。。
例
Under Construction
serialization::XXX
各種クラスのシリアライザとデシリアライザを提供する。スマートポインタもばっちり。BOOST_SERIALIZATION_ASSUME_ABSTRACTマクロで抽象クラスを通知するなどといった呪文を唱えることで、抽象クラスであってもへっちゃら。まるで魔法。このライブラリはビルドが必要。
例
Under Construction
tokenizer
CSVデータなどをカンマごとに分離するといったトークン分割機能を提供する。対象とするデータはテンプレートで指定できるので、charでもwchar_tでもOK。escaped_list_separatorを使えば、文字列内のカンマの読み飛ばしなんかも容易に実装可能。
例
Under Construction