今更だけどポインタって便利


NULLで何もないことを表せて、その上NULLでない場合には値をも表現することができる。
intでも特定の値をNULLと同じ役割にすればいいけどその値使えなくなっちゃうし。


C++の参照は素晴らしいけど、どうも俺は.よりも->のが好きらしい。
感覚的すぎてイミフだけど、多分これはPerlの影響なんじゃないかと今思った。
最初に覚えた言語は結構考え方とかに影響してくるとか言うし...Perl6では「.」になるけど。
いやまぁその方が断然タイプしやすくていいんだけども「->」の方が「値を引っ張り出してくる」って感じで書いてて気持ちよくね?とか思った。
「.」だと値をそのまま使ってるよコピーが行われないように気をつけなきゃとか思ってしまう(C++の話)。const参照とかいまだに慣れない。気をつけないとどっかでコピーコンストラクタが動きそうで怖い。怖いは言い過ぎか。
間接的に値を持ってることに安心感を覚えるというかなんというか。
そんな感覚的でどうでもいいことよりSEGV気にしろと思うけども。
いやもちろん無闇やたらポインタ使うわけじゃないけどさ。
なんでこんなにポインタ好きなんだろ。
バグなんかもテストがこける理由なんかも大概ポインタなのに...
俺は頭がおかしくなったのか。



void *p;
p = &p;

/* 多分 */
&p == *p;       # => 1
&p == *****p;   # => 1
&p == p;        # => 0
typedef void (*func_t)(void);

func_t
f(void)
{
    puts("hello!");
    return f;
}


f()()()()();
struct f {
    const &f
    operator() {
        puts("hello!");
        return *this;
    }
};


f()()()()()();

動くか分からないコードを書くのって楽しい。
多分動くはずだけど。



templateで5回hello!って言わせたい...
mpl::stringとか使えばいいんだろうか。
でもtemplateじゃ関数呼べないし。



ポインタ厨はMPL厨にジョブチェンジできるだろうか...