Boost

boost::numeric::ublas::vector

http://d.hatena.ne.jp/m107/20050528/1117283017 なんか遅いらしい。せっかく今日試してみようと思ってたのにーちょっとublas::vectorのドキュメントを眺めてると、 テンプレート引数にアロケータを渡すようになってて デフォルトではstd::vectorを使うよう…

boost線形代数クラス

http://d.hatena.ne.jp/m107/20050526/ で知った。 http://www.page.sannet.ne.jp/d_takahashi/boost/ublas/index.html クォータニオンクラスがあるのは知ってたけど行列やベクトルクラスがあるのは知らなかった。 自作のベクトルクラスでも不便はしていない…

boost::randomの罠

boostの乱数ライブラリであるboost::randomは、Mersenne Twister法をはじめとする複数の乱数発生器と、ベルヌーイ分布や正規分布などの複数の乱数分布があり、それらを組み合わせて使うことが出来るスグレモノ。 だけど、プログラム中で複数の乱数分布を使お…

std:for_each

for(iterator it=list.begin(); it != list.end(); ++it) it->draw();とかしてたのを std::for_each(list.begin(), list.end(), boost::mem_fn(&IDrawBase::draw));としてみる。boost::mem_fnは標準ライブラリのstd::mem_funに相当するもんだけど、std::mem_…

intrusive_ptr

頻繁にインスタンスが生成・解体されるような所にはshared_ptrでなくintrusive_ptrを使うことにしてみる。 intrusive_ptrを使うクラスには参照カウンタと、参照カウンタをage/sage用の関数を定義してやる必要がある。 こんなクラスを定義して、こっから派生…

スマートポインタあれこれ

描画パケットも含め、現状ではインスタンスのライフタイム管理はboost::shared_ptrを使っている。shared_ptrを使うと管理は非常に楽なんだけどパフォーマンスを圧迫していないか心配だ。 Smart Pointer Timings (スマートポインタ性能比較)を見ると、埋め…

スマートポインタ関連とか

Smart Pointer Programming Techniques thisからshared_ptrを得る方法など役に立つテクニック http://www.issei.org/programming/boost/more/generic_programming.htm [id:Cryolite:20050318] 何故boost::shared_ptrは遅いのか? スマートポインタ考察 I ス…

スマートポインタの負荷

http://boost.cppll.jp/HEAD/libs/smart_ptr/smarttests.htm スマートポインタ性能比較。Special Countedってのがboost::shared_ptrの実装。思ったよりも負荷が大きい。初期化のコストが高いのはいちいち参照カウント用のオブジェクトをnewしているからか。…

Boostってすごくね?

各所で話題のkeyword:Boostを試してみる。 とりあえず参照カウント付きスマートポインタであるshared_ptrだけのためでも使う価値はある。オブジェクトのライフタイムを気にしなくて言いというのは楽だ。std::auto_ptrはSTLのコンテナに対応していない弱点が…