私は「Boostを使って」ではなく「Boostを作って」勉強している
仕事ではBoostを使いたくても使えないことが多いだろう
(「フリーのライブラリなんて使っちゃダメ」とか言われて)
そこで、Boostの必要なもののみを作って使用している
各機能をヘッダーファイル1本で提供できるので移植もしやすいだろう
このブログで紹介したものを以下にまとめる(※随時更新)
【Boost本家】
Boost C++ Libraries
Boost C++ Libraries(cppllによる翻訳)
【Boostからの移植】
・shared_ptr
参照カウント付きスマートポインタ
・shared_array
参照カウント付きスマートポインタの配列版
・array
固定長配列
・lexical_cast
数値と文字列の相互変換
・type_traits
型特性
・static_assert
コンパイル時アサート
・enable_if
コンパイル時条件によるオーバーロード
・MPL(メタプログラミングライブラリ)
あらゆるコンパイル時処理を可能にする
mpl::if_
mpl::eval_if
mpl::identity
・foreach
foreach文
・function
汎用関数オブジェクト
・assign
コンテナ要素の簡易追加
・mem_fn
メンバ関数アダプタ
・bind
引数の束縛
・format
文字列フォーマット
【オリジナル】
・mem_find
メンバ変数検索
公開メンバ版
・overlap_count/unique_count
重複数取得
・tuple
ローテク版タプル(Boostとインターフェースが違うのでこっち)
・join
コンテナの結合
・ラムダ
なお、これらの名前空間はshandを使用している
考案者(友人)によれば、shandの名前の由来は「small hand(小さな手)」だそうだ