Cプリプロセッサに__map()や__VA_COUNT__を足したら快適すぎた
Fun Extending the C Preprocessor
C2Yコンパイラ「DrC」を趣味で書く著者が、Cプリプロセッサに独自拡張を追加した話。マクロの展開結果を確認できる__print()、定義場所を教える__where()、再帰を偽装せず引数リストへ一括適用できる__map()、可変長引数の個数を直接取れる__VA_COUNT__などを紹介。標準の不格好な回避策が不要になり、可読性と速度が向上する。
Cプリプロセッサは強力なツールだが、使いこなすには読むのも嫌になるような黒魔術が必要になる。