Boostライブラリの中で使っているもの

公開:2011-12-05 08:11
更新:2020-02-15 04:36
カテゴリ:boost,windows,c++

Boostライブラリの中で使っているもの。なにげに色々使っている。やっぱり便利だから。私は完全に利用者の立場で、中身についてはよくわからない。

Format

一番よく使う。これを使うようになってprintf系の関数はまったく使わなくなってしまった。formatした文字列をstringに変換するのも簡単。画面に出すのもファイルに出すのもあんまりコードを変えずに済む。出力先をcoutかfstreamに変えるだけ。マニピュレータだけでやろうとするとほんとに面倒だし。

Smart Pointerまわりのライブラリ

VC2010の標準ライブラリでもサポートされるようになったのであんまり使わなくなってしまったけれど、shared_ptr,scoped_ptrはよく使っていた。今はstd::shared_ptr,std::unique_ptrに移行している。私の場合はアプリが予期しないところで終了してもできる限りリソースを解放するための保険として使っていることが多い。

bind

これも標準ライブラリに加えられているかも。引数束縛というやつ。昔の標準ライブラリではbind1st(1引数版),bind2nd(2引数版)だけだったのだが、bindではそれ以上の引数でも束縛することができるのである。私はアルゴリズムとクラスのメンバ関数をくっつけるときによく使う。

thread

スレッド開始ルーチンでbindを使えてメンバ関数を呼び出せるところが便利なので。

array

固定長配列を標準ライブラリのコンテナのように見せるやつ。アルゴリズムを使うときに便利。

filesystem

ファイル操作に関するライブラリ。API使うよりもこっちを使うほうが楽なので。これについてくるfstreamはパス名がwchar_tに対応しているのでとても便利。

Serialization

オブジェクトの状態を保存するライブラリ。これを使うと比較的簡単にクラスの情報を保存・復元できる。ポインタ情報も保存可能。それなりに考えて使わないといけないけど、同等のことを自分でやろうとするととても面倒である。私は設定情報の保存・復元や、データ保存に使っている。XML形式で保存することもできてとても便利である。

いろいろなものに手を出したけれど、結果主に使っているのは上記のライブラリ。最近はlockfree & Atomicも使いはじめている。 Boostを使うと環境に依存しないコードを書くことができるようになるけど私はその方面の意識は高くない。