みなさまいかがお過ごしでしょうか?さて、今日のテーマは「再帰」です。プリプロセッサでは再帰が扱えないので、例えば、 #define PP_APPLY(f, x) f(x) #define HOGE(x) PP_APPLY(PIYO, x)という定義があったとして、 PP_APPLY(HOGE, FUGA)とか書いてあるとPIYO(FUGA)にはならないわけです。でもなってほしいのです。なってほしいのでなんとかやってみましょう、というのが今回の主旨です。では始めましょう。 #define PP_APPLY(f, x) f(x)これは一度しか展開できません。f(x)を展開した結果、PP_APPLY(なんたら)になっても、もう二度と展開はしてくれないのです…なので、 #define PP_APPLY_1(f, x) f(x) #define PP_APPLY_2(f, x) f(x) #defi