とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

無名関数

void (void)な関数はブロックと等しいので
{ /* hogehoge */ }
と定義できる。
それ以外の型の時は,関数名 _ は無名関数とか決めちゃえばどう?

qsort(
    data,
    sizeof(data)/sizeof(data[0]),
    sizeof(data[0]),
    int &_(const void*a, const void*b){return *(const int*)a - *(const int*)b;}
);

&演算子をつけることにするなら _ すらいらないね。

    int &(const void*a, const void*b){return *(const int*)a - *(const int*)b;}

この流れだと,単なるブロックを関数と見なし,かつ,その関数のポインタを得るなら&演算子が必要だなぁ。
&{ /* hogehoge */ }
うーん,なんてカオス。