2007-01-01から1年間の記事一覧
デザインパターン(マルチスレッド)まとめ 適切な状態になっていないなら処理を中断する、というパターン。 以下は増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編のサンプルを Boost.Thread を使って書いたコード。 save, doSave メソッ…
デザインパターン(マルチスレッド)まとめ 適切な状態になっていないならスレッドを待たせる、というパターン。 boost::condition を使って実現することが出来る。 以下は増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編のサンプルを Boos…
デザインパターン(マルチスレッド)まとめ 読み取りしかしないなら排他制御を行う必要がない、というパターン。 以下は増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編のサンプルを Boost.Thread を使って書いたコード。
デザインパターン(マルチスレッド)まとめ 同時に実行できるスレッドを1つだけにするパターン。 boost::mutex と boost::mutex::scoped_lock を使えばいい。 以下は増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編のサンプルを Boost.Thr…
id:melpon:20071208 でこんな関数を書いた。 template<class TObject> boost::_bi::bind_t< void, void (*)(TObject*, boost::function<void (TObject*)>), boost::_bi::list2< boost::arg<1>, boost::_bi::value< boost::function<void (TObject*)> > > > null_check_deleter(boost::function<void (TObject*)> f) { return boo</void></void></void></class>…
boost::function は静的に型が決まっていないと渡すことが出来なくて、それが不便なことがあったりするので、インターフェースを介して boost::function を呼べる virtual_function というのを作ってみた。
自分の「好き」はいつもふらふらと移り変わっていて、 そんなふうに、カチっと定義づけることなどできやしない。 それを、無理矢理「ぼくは○○が好きな人間なんだ」などと定義づけるから、 「好きなステーキを毎日強制的に食わされる牢獄」などに閉じこめられ…
なんかお仕事で Boost が使えそうなふいんき(←なぜか変換(ry になってきたので今のうちに Boost と戯れて慣れておこう。
過去ログ シンプルで高速なアロケータ シンプルで高速なアロケータ(2)
過去ログ シンプルで高速なアロケータ 使い方としてはこんな感じになると思います。 // ブロックの数は 2^15=32768 個で、1つのブロックの大きさは 2^4=16 バイト typedef SimpleAllocator<15, 4> MyAllocator; // 必要なメモリを確保して void* pMemory = …
細々としたメモリを動的に確保しているせいか、今やってるアプリケーションが結構遅くなってきました。 なので、小さいメモリについてはアロケータを使って確保してやろうと思っているんだけど、そこら辺の汎用的なアロケータは、超シンプルなアロケータに比…
// ビットからバイト、バイトからビットへ単位を変換 template<uint TValue> struct bit_to_bytes { static const uint value = TValue >> 3; }; template<uint TValue> struct byte_to_bits { static const uint value = TValue << 3; }; // 2 の TValue 乗 template<int TValue> struct power2 { </int></uint></uint>…
http://www.nicovideo.jp/watch/sm1508340
http://www.nicovideo.jp/watch/sm1489197
http://www.nicovideo.jp/watch/sm1489159
http://www.nicovideo.jp/watch/sm1483516
id:melpon:20060920 で書いたコードの 256 段階バージョンを作る必要が出てきたんだけど、さすがに手で書くのはきついので、テンプレートを使ってちょこちょこ書いてみた。 //int GetDepth(int value) //{ // int count = 0; // while ((value & 1) == 0) //…
http://www.nicovideo.jp/watch/sm1473463
http://www.nicovideo.jp/watch/sm1473406
http://www.nicovideo.jp/watch/sm1474243
http://www.nicovideo.jp/watch/sm1461680
http://www.nicovideo.jp/watch/sm1460957
http://www.nicovideo.jp/watch/sm1459286
http://www.nicovideo.jp/watch/sm1458940
http://www.nicovideo.jp/watch/sm1454845
http://www.nicovideo.jp/watch/sm1466832
http://www.nicovideo.jp/watch/sm1449437
http://www.nicovideo.jp/watch/sm1439879 新作うpしてきますた。
http://www.nicovideo.jp/watch/sm1435274
http://www.nicovideo.jp/watch/sm1433429