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): -