関数コールバックは,それしか方法が無かった時代の遺物である.近代のプログラマは関数コールバックを断固拒否すべきである.本来,コールバックすべきなのはクロージャである. 関数コールバックは,あらかじめ関数ポインタ(C言語で言えば)をランタイムライブラリに渡しておき,「何かあったら」その関数ポインタをたぐり寄せて関数をコール(バック)してもらうメカニズムである.例えば標準C言語ライブラリのsignalメカニズムがそれに相当する.動的な関数のバインディングを許さないC言語では,これが実行時多様性を確保する(多少なりとエレガントな)唯一の方法である. 単純な関数コールバックは標準C++言語では扱いづらいものである.もしランタイムが関数ポインタを要求するならば,プログラマは関数ポインタを渡さなければならない.ところが,C++言語ではメンバ関数ポインタは関数ポインタではないから,メンバ関数をコールバッ