サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Wikipedia
miyano.s53.xrea.com
無料モバゲーで有名なグリー主催で、昨年末に開かれたBOOST勉強会のスライドを一通り眺め終わった。 とりあえず面白かったのは multi_index_container & intrusive STLのset/mapは赤黒木で実装されていますが、boostのintrusiveというライブラリに、AVL木、スプレー木、スケープゴート木などの各種木の実装があります。 これをマルチインデックスコンテナのインデックスに利用できるようにカスタマイズした話。 それにしてもマルチインデックスコンテナの実装がものすごく綺麗でビックリ。ほんと勉強になる。 shared_ptr & weak_ptr shared_ptrの目指したデザインゴールの話がものすごく面白い(11分過ぎくらいから)。 あと、DLL境界を超えたさいのshared_ptrの魔法のような動作を知らない方は是非みるべき(20分過ぎくらいから)
GDI+ はとても強力な描画命令を持っていて便利だけども、使ってみるとかなり遅い。 かなり単純な図形しか描画しなくても遅い。ということで、描画自体の速度はともかく、描画したGDI+のオフスクリーンサーフェスから、ウインドウへの転送速度が足を引っ張っていそうだ。 webで探してみてもやはりオフスクリーンサーフェスからの転送速度が遅いということを書いてあるページがいくつか見つかった。(このへんとか) ということで、自分でもいろいろ調査してみた。 まずは一番シンプルで一般的と思われるコードは以下であり、これが遅い。 // オフスクリーンサーフェスの生成 Gdiplus::Bitmap bitmap(rect.Width(), rect.Height(), PixelFormat24bppRGB); // オフスクリーンサーフェスに Graphicsクラスを使って描画 Gdiplus::Graph
Boost.Foreachは簡単に使えて、かつ、メリットも大きいライブラリだ。 forループを Perlなんかの foreachのように記述できるようになる。 たとえば配列だったら double a[] = {1,2,3,4}; for (int i = 0; i < sizeof(a)/sizeof(*a); ++i) { a[i] *= -1; } なんて書いていたのを double a[] = {1,2,3,4}; BOOST_FOREACH(double& d, a) { d *= -1; } てな感じにループカウンタなどを気にしないで書ける。 これがものすごーく快適。 ループの終了条件があっているかだとか、多重ループでは正しいカウンタをインクリメントしているのかだとかに労力を費やす必要がなくなるのは本当に大きい。 listなんかにも当然使えるのだけど、 for (std::lis
仕事で使ったほうがよいのかどうか判定するため、Hamanaの環境をVS2003からVS2005に移してみた。 コンパイルはほとんど一発で通ったが、ものすごい数の警告がでる。原因は strcpy() などのセキュアでない古い関数を使っているためで、親切に 「strcpy_s()使ったほうがいいじゃない?」と警告をだしてくれるからであった。 もちろん pragmaで表示しないようにもできるが、これには素直に従ったほうが良さそうなので、大部分はセキュアなバージョンに置き換えた。 で、VS2005移行時に一番危険だと思ったのは以下のコードがコンパイルはできるが、実行するとファイルのオープンに失敗してしまい、正しく動かなくなることだ。 int main() { std::ofstream ofs("日本語.txt", ios_base::out | ios_base::trunc); if (ofs
台湾2日目は招いてくれた会社の中で一日中打ち合わせでした。コンピュータ関連、特許書類関連、貿易関連の3事業を柱とした面白い会社で、社員がみんな若い! いるだけで元気がもらえるような会社です。 お昼は鰻弁当をとってくれました。 鰻の味付けは日本とほぼ同じ。鰻の質もよし。ご飯の上には独特のいい香りがする惣菜がたっぷりとのっています。これで300円程度ということ。安い! 夜は台北市の隣の板橋市の有名な西洋料理屋に連れて行ってくれました。ステーキと魚がメインのコースで3000円ぐらいだったかな。これも安くて大変おいしい。 お子様ランチみたいな旗がかわいいですが、台湾では大人にもこういった旗を付けて供することがあるそうです。 三日目は昨日たっぷりと宿題がでたので、朝から晩までホテルに篭ってプログラミング。 お昼だけ街をちょっと歩いてランチを食べました。 有名な立ち食いの米麺を食べさせてくれるところ。
Rangeライブラリ。 その名の通り、要素のシーケンスの範囲を扱うライブラリで、 なんとなく地味な感じがあるけど、コレ面白い。 範囲とは、コンテナから以下の制約を取り除いたものとみなすこともできる。 要素を自身が管理する コピー可能である。 つまり範囲をコンテナのサブセットとみなすことで、できるかぎりコンテナとアルゴリズムを共用しようという、個人的には目から鱗のアイディア。よく考えつくなあ。 現在の実装で範囲として扱えるものは STLコンテナ(とその仲間たち) 配列 NULL終端文字列 (char[], wchar_t[], char*, wchar_t*) std::pair<Iterator, Iterator> 例えば以下の template関数 PrintRangeを一回かけば、vectorだろうが、配列だろうが、C文字列だろうが、範囲ならばなんでも引数に指定できてしまう。 tem
Hamana - graphic viewer powered by DirectX 1.Features いわゆるグラフィックビューアです。以下の特徴があります。 Direct Graphics による高速な拡大縮小や各種エフェクト (要DirectX 9.0c) ファイル先読みによる快適なスライドショー 2画面表示モード susieプラグイン対応 zip(cbz)/7z/rar(cbr)/cab/arj/lzhを解凍することなく閲覧可能 (susieプラグインを用意することで gcaなどにも対応します) スクリーンセーバーとして利用可能 pdf対応 (Ghostscriptがインストールされている必要があります) 強力なキーカスタマイズ Unicode対応 ( Special Thanks to Houken(traditional chinese), Haibara(simplifi
このページを最初にブックマークしてみませんか?
『Hamana - graphic viewer』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く