C++

買った本

合計金額 (9点): 22,554円 新版 電子と原子核の発見 20世紀物理学を築いた人々 / スティーブン・ワインバーグ ISBN:9784480089670 素粒子物理学 / 原康夫 ISBN:9784785322199 相対論的量子力学 / 西島和彦 ISBN:9784563024130 量子力学—観測と解釈問題 / 高…

買った本とCD

合計金額 (14点): 21,635円 風の邦、星の渚 レーズスフェント興亡記 / 小川一水 ISBN:9784758411165 詩羽のいる街 / 山本弘 ISBN:9784048738842 七つの海を照らす星 / 七河迦南 ISBN:9784488024376 ぼくらの先生! / はやみねかおる ISBN:9784062149914 輪環…

読んだ本

C++

Effective C++ 第3版 / Scott Meyers ISBN:9784894714519 More Effective C++ / Scott Meyers ISBN:9784756118530 Exceptional C++ / Harb Sutter ISBN:9784894712706 C++プログラミングの落とし穴 / Steve Oualline ISBN:9784756143273 『Effective C++』は…

買った本

人工知能入門〜歴史,哲学,基礎・応用技術〜 / J.フィンレー, A.ディックス ISBN:9784781911366 C++プログラミングの落とし穴 / Steve Oualline ISBN:9784756143273 人工知能の本は何冊か持ってるけど、これは網羅している範囲が広くて参照用に良さそう。まあ…

逆アセンブラ

というわけで最近作っていた逆アセンブラを公開します。WindowsのPortable Executable形式(拡張子がEXEまたはDLLのファイル)に対応しています。Download: pedumper-1.0.zipたまたまハードディスクを漁っていたら昔書いた逆アセンブラが出てきて、これが今…

C++が面白い

C++

最近自分の中でC++が面白くなってきた。これまでC言語とJavaは普通に使えるけどC++はなんだかよく分からない変態的な言語という印象だったのが、ここに来てなんとなくコツをつかんだ感じ。一番大きかったのはコンストラクタまわりの仕組みを意識できるように…

マニピュレータ

C++

例えばCだと printf("[%08x]\n", n); と書けるところが、C++だと std::cout << '[' << std::hex << std::setfill('0') << std::setw(8) << n << ']' << std::endl; とか書かないといけないのだが、こんなコードを何回も書いてるうちにやってられない気分にな…

買った本

C++

C++ 入門書の次に読む本 / 朝井淳 ISBN:9784774126944 auto_ptr、iostream(マニピュレータ)、STL辺りの知識が不足していたので。

買った本とCD-ROM

Exceptional C++ Style―40のクイズ形式によるプログラム問題と解法=スタイル編 / Herb Sutter ISBN:4894714663 GOSICK―ゴシック / 桜庭一樹 ISBN:4829162295 コミックマーケット71 CD-ROMカタログ C++なんてどうせ使わないのになぜ勉強するのかといえば、「…

買った本

鳥篭荘の今日も眠たい住人たち 〈1〉 / 壁井ユカコ ISBN:4840236054 エクスプローラー 4 仇敵撃破 / 北山大詩 ISBN:4829163720 フォーソルティアの風 / 藍原みつと ISBN:4840236097 ふたばの教室 (1) / 八神健 ISBN:4592143612 まとちゃん / 結城心一 ISBN:4…

買った本

Effective C++ 第3版 / スコット・メイヤーズ ISBN:4894714515 @ITベストセレクション #002 Linux 構築・運用編 ISBN:479811085X 七つの黒い夢 / 乙一, 恩田陸, 北村薫, 誉田哲也, 西澤保彦, 桜坂洋, 岩井志麻子 ISBN:4101281513 灰色のアイリス / 岩田洋季 …

テンプレートでたらいまわし(8回目)

C++

継続渡し風味。 #include <iostream> /* True */ class True; /* False */ class False; /* Bool */ template <bool b> struct Bool; template <> struct Bool<true> { typedef True Result; }; template <> struct Bool<false> { typedef False Result; }; /* NullType */ class NullType; </false></true></bool></iostream>…

テンプレートでたらいまわし(7回目)

C++

引数を遅延評価するようにしたらかえって遅くなった。 #include <iostream> /* Int */ template <int x> struct Int { enum { value = x }; }; /* Tarai */ template <int x, int y, int z> struct Tarai; template <class X, class Y, class Z> struct Tarai0; template <bool b, class X, class Y, class Z> struct Tarai1; template </bool></class></int></int></iostream>

テンプレートでたらいまわし(6回目)

C++

遅延評価する前段階のちょっとした変更のつもりが、予想外な高速化ができた。 #include <iostream> /* Int */ template <int x> struct Int { enum { value = x }; }; /* Tarai */ template <int x, int y, int z> struct Tarai; template <class X, class Y, class Z> struct Tarai0; template <bool b, class X, class Y, class Z> struct Tarai1; template </bool></class></int></int></iostream>

テンプレートでたらいまわし(5回目)

C++

Typelistを使わない方法。この方がさらに速い(しかも引数が0の場合も動く)。 #include <iostream> /* True */ class True; /* False */ class False; /* Bool */ template <bool b> struct Bool; template <> struct Bool<true> { typedef True Result; }; template <> struct Bool<false></false></true></bool></iostream>…

テンプレートでたらいまわし(4回目)

C++

さらに高速化・簡単化できた。 #include <iostream> /* NullType */ class NullType; /* Typelist */ template <class T, class U> struct Typelist; /* Length */ template <class T> struct Length; template <> struct Length<NullType> { enum { value = 0 }; }; template <class T, class U> struct Length< Typelist<T, U> > { </t,></class></nulltype></class></class></iostream>…

テンプレートでたらいまわし(3回目)

C++

こうするとだいぶ速くなった。 #include <iostream> template <class T, class U> struct Typelist { typedef T Car; typedef U Cdr; }; class NullType; #define TYPELIST_1(T1) \ Typelist<T1, NullType> #define TYPELIST_2(T1, T2) \ Typelist<T1, TYPELIST_1(T2) > #define TYPELIST_3(T1, T2, T3) \ Typelist</t1,></t1,></class></iostream>

テンプレートでたらいまわし(2回目)

C++

前回、「テンプレートの方はあまり数字を大きくできない」と書いたけど、試しにやってみるとどうなるか。やることは単純で、以下のような定義を追加して、 typedef Typelist<int, T12> T13; typedef Typelist<int, T13> T14; typedef Typelist<int, T14> T15; …(延々繰り返し) typedef Ty</int,></int,></int,>…

テンプレートでたらいまわし

C++

できたような気もするけどこれ本当に動いてるのか? #include <iostream> template <class T, class U> struct Typelist { typedef T Car; typedef U Cdr; }; class NullType; #define TYPELIST_1(T1) \ Typelist<T1, NullType> #define TYPELIST_2(T1, T2) \ Typelist<T1, TYPELIST_1(T2) > #define TYPELIST_3(T1, T2, T3) </t1,></t1,></class></iostream>…

テンプレートでフィボナッチ数列

C++

『Modern C++ Design』 (ISBN:4894714353)を読んでC++のテンプレートが面白かったのでちょっと遊んでみた。 #include <iostream> template <class T, class U> struct Typelist { typedef T Car; typedef U Cdr; }; class NullType; #define TYPELIST_1(T1) \ Typelist<T1, NullType> #define TYPELIST_</t1,></class></iostream>…

買った本

Boost C++ Libraryプログラミング / 稲葉一浩 ISBN:4798007862 WILLCOM携帯アプリプログラミングブック /布留川英一 ISBN:4839919682 月刊ドラゴンマガジン MAY 2006 最近立て続けに『C++ Coding Standards』 (ISBN:4894716860)と『Modern C++ Design』 (ISB…

人間コンパイラコンパイラとLispのマクロ

C++を使っていると、関数型言語の人には、「そこまで(Boost.Lambdaみたいなことまで)して関数型に近づける努力をするくらいならC++をやめて関数型言語使えばいいじゃん」 と言われることがありますが、それは全然違うよ、と思うのです。 まさに自分はそうい…

買った本とCD

ヤミナベ・ポリスのミイラ男 / 梶尾真治 ISBN:4334740154 Ajax逆引きクイックリファレンス / 古籏一浩 ISBN:4839920354 C++ Coding Standards / Herb Sutter, Andrei Alexandrescu ISBN:4894716860 優雅なへの旅 / 河田直樹 ISBN:4768703569 真面目過ぎる君…

The Super Programming Technique

Lesson 1. ラムダ式をC++で実現する【前編】 Lesson 2. ラムダ式をC++で実現する【中編】 Lesson 3. ラムダ式をC++で実現する【後編】 C++のテンプレートを使ってlambda式を実現するという記事。やねうらおさんによる。