No Such Blog or Diary
学位記
- 2006-03-23 (Thu)
- 一般
無事に修士がもらえたのでめでたしめでたし.学位記の入れ物(?)が学士のときと比べてグレードダウンしてたのが少々気になるが…
- Comments: 0
- TrackBack (Close): -
スピンジャンプオンリーで
- 2006-03-23 (Thu)
- 遊び
迷いの森手前の城をクリア可能なことが実機で確認できた.とはいえ,最後の3回連続ジャンプはマリオ20人あたり1回しか成功しなかったけど…
- Comments: 0
- TrackBack (Close): -
変なコード?
g++ (GCC) 3.3.5-20050130 (Gentoo 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1) で以下のコードがエラー無くコンパイルされた.3.4.4 とか VC++ (VS.NET 2005) ではコンパイルできなかったのに…
#include <iostream> #include <string> int main(int argc, char *argv[]) { for({std::cout << "Hello?" << std::endl; std::cout << "world?" << std::endl; } 0 ; 0) { std::cout << "loop?" << std::endl; } return 0; }
- Comments: 0
- TrackBack (Close): -
誤字など
- 2006-03-21 (Tue)
- 一般
「ユビキタス」を「ユキビタス」と言う人間がどの程度いるのだろうかと google で検索したら 誤字等の館 というものが引っかかった.結構面白いかも.
- Comments: 0
- TrackBack (Close): -
Haskell の導出インスタンス
data と newtype の宣言で deriving つけたらインスタンスが自動生成されることを始めて知った… Eq、Ord、Enum、 Bounded、Show、 Read に対して使えるようでかなり手間が省ける.
- Comments: 0
- TrackBack (Close): -
あまり見ない C++ コード
ひとつ目.switch の後に { } がない(switch の意味が無いが…).return でカンマ区切りの式.throw がカンマ区切りをともなってネスト.
#include <iostream> int main(int argc, char *argv[]) { try { switch(argc) case 1 : return std::cout << "no argument!" << std::endl, 0, throw (1,throw 9,2), 1; } catch (int k) { std::cout << "cought exception: " << k << std::endl; } return 0; }
どうやらこのコードでは 9 が投げられるらしい.
二つ目.Pointer to Member Function: .* and ->*
#include <iostream> struct Base { virtual void f() { std::cout << "Base! " << std::endl; } }; struct DerivedA : public Base { int k; DerivedA(int kk) : k(kk) {}; void f() { // オーバーライド std::cout << "DerivedA with k = " << k << std::endl; } }; struct DerivedB : public Base { }; int main(int argc, char *argv[]) { DerivedA *pobjA, objA(5); DerivedA objA2(3); DerivedB objB; typedef void (Base::*f_type)(); f_type f_base = &Base::f; pobjA = &objA; (objA2.*f_base)(); (pobjA->*f_base)(); (objB.*f_base)(); }
なんに使えるのかよくわからないが,とりあえずちゃんとオーバライドした関数も呼ばれる.
- Comments: 0
- TrackBack (Close): -