TL;DR

  • マクロを書くべきかには 2 つのルールがある。マクロを書くな。パターンをカプセル化する唯一の方法ならマクロを書け。
  • 例外として、同等の関数と比べて呼び出し側が楽になるならば、マクロを書いてもよい。

内容

マクロをいつ使うべきかには、大きく次の 2 つのルールがある。

1. マクロを書くな

マクロは複雑で、マクロ展開時とコンパイル時の相互作用を考える必要がある。関数で実現できるならば、マクロを書く前に考えるのがよい。

2. パターンをカプセル化する唯一の方法ならばマクロを書け

すべてのプログラミング言語はパターンをカプセル化する何かしらの方法を持っているが、マクロがなければそのメカニズムは不完全である。

同等の関数と比べて、呼び出し側が楽になるならば、マクロを書いてもよい

上の 2 つのルールには例外もある。ただし、この例外を理解するには、マクロを実際に書いて関数のケースと比べる経験が必要になる。

キーワード