Boostの遊び方(ライブラリまとめ)

私は「Boostを使って」ではなく「Boostを作って」勉強している


仕事ではBoostを使いたくても使えないことが多いだろう
(「フリーのライブラリなんて使っちゃダメ」とか言われて)


そこで、Boostの必要なもののみを作って使用している


各機能をヘッダーファイル1本で提供できるので移植もしやすいだろう


このブログで紹介したものを以下にまとめる(※随時更新)



【Boost本家】
Boost C++ Libraries

Boost C++ Libraries(cppllによる翻訳)




【Boostからの移植】
shared_ptr
 参照カウント付きスマートポインタ


shared_array
 参照カウント付きスマートポインタの配列版


array
 固定長配列


lexical_cast
 数値と文字列の相互変換


type_traits
 型特性


scope_guard


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とインターフェースが違うのでこっち)


SFINAE版STLアルゴリズム


join
 コンテナの結合


変換後コンテナを返すtransform


コンセプト(container)


ラムダ


extension std::map


extension std::basic_string


Range-base ライブラリ



なお、これらの名前空間shandを使用している

考案者(友人)によれば、shandの名前の由来は「small hand(小さな手)」だそうだ