最近 boost を使うようになってデバッグの効率がよくなった感じ。
ちょっと便利な使い方 ( というか私が知ってる使い方 ) を紹介。
boost::shared_array, shared_ptr 自動 delete 付きメモリ管理クラスだけど、代入可能でナイス! STL に溜めれるから寿命管理が楽。頼りすぎるとメモリ圧迫しすぎるので注意。 std::set<boost::shared_ptr<CHoge> > stack; stack.push_back( boost::shared_ptr<CHoge>( new CHoge ) ); // で追加 stack.pop_front(); // 一個解放 stack.clear(); // 全部解放 boost::function, bind 関数ポインタを引数もくっつけて1つのインスタンスにできて素敵。 struct TFunc { static void Callback( int a, int b ) { // いろいろ } }; boost::function0<void> func = boost::bind( TFunc::Callback, 1, 2 ); Hogehoge( func ); こんな感じで関数内関数(?)みたいな感じで、名前空間を汚さずにコールバック関数が作れます。 boost::function0<void> func = boost::bind( &CHoge::HogeFunc, this, 1 ); こうするとメンバ関数も扱えます。これで普通の関数と同じに扱えるのがポイント。 boost::thread マルチスレッドの多プラットホーム化程度の利用かな… struct TFunc { static void ChildThread( int thread_data ) { // 子スレッド } }; boost::function0<void> func = boost::bind( TFunc::ChildThread, data ); boost::thread thr( func ); こんな感じに function, bind とあわせて使います。( 私は。 )
これ以外は C 標準ライブラリで用が済ませちゃうことが…
「もっと便利な使い方があるよ!」ってタレコミお願いします。