TL;DR

内容

項目28 分別をもってマクロを使おうのうち、マクロの位置付けの話である。

マクロは、同じ目的を果たすコード片を 1 つにまとめる。まとめたコード片を使って、さらに任意のコードを組み立てられる。いわゆるメタプログラミングである。

ほかの抽象化の手段と比べると、違いが分かりやすい。関数は、同じ型の異なる値の違いを隠す。どの値が対象でも、型が持つ機能やメソッドで処理する。ジェネリクスは、トレイト境界を満たす異なる型の違いを隠す。どの型が対象でも、トレイト境界が提供するメソッドで処理する。マクロは、同じ構造を持つコードの違いを隠す(マクロを使うべきケース)。

キーワード