0-01-01から1年間の記事一覧

Boost.Lambdaでletとかwhereを書かせろ #define LET(var) [&] { var IN #define IN(body) return body; }() #define LAMBDA(def) [&] { LAMBDA_WHERE(LAMBDA_WHERE_I def) return LAMBDA_BODY def )); }() #define LAMBDA_WHERE(where) LAMBDA_WHERE_II(wher…

プリプロセッサで再帰しましょう!

C++

みなさまいかがお過ごしでしょうか?さて、今日のテーマは「再帰」です。プリプロセッサでは再帰が扱えないので、例えば、 #define PP_APPLY(f, x) f(x) #define HOGE(x) PP_APPLY(PIYO, x)という定義があったとして、 PP_APPLY(HOGE, FUGA)とか書いてあると…

http://woofertime.com/woof/3024 うーん、decltypeややこしい… eが識別子として、"type of e"と言ったとき、「識別子を宣言したときに書いた型」と捉えるのと、「式を評価した結果の型」と捉えるのでは期待する結果(型推論のルール)が違うからなぁ。それ…