おいちゃんにもできるlambdaの実装

boost::lambda的なものを作ろうという話。とりあえず会社で昼休みを一時間半ぐらい延長して作ってみた。例によってコードは手元にない。とりあえず<だけだが、演算子ごとにapplyメンバ関数とresultテンプレートクラスを定義したクラスを作ればいいようになっているのでそんなにややこしいことはない。result以外については。おそらくlambda実装の面倒さの全てはそこに集約されると思われる。何せ式の戻り値の型を計算しなくてはいけないのだが、これが非常に面倒である。参照であるか値であるか、はたまたconstなのかvolatileなのか、あるいは継承関係なのかそうでないのか。このへんのことを考慮して戻り値型を計算しなくてはならない。decltypeって超便利だよね。