Inference-Driving Macros
Scalaのmacroについて・・・
Inference-Driving Macros ってどういうことだろうと思っていたが、Scalaのmacroは相当賢くて
def apply(x: String) = macro vimpl def vimpl(c: Context)(x: c.Expr[String]): c.Expr[Any] = ...
としてもちゃんと戻り値の型をmacroの呼び出し側で決定してくれる、ということらしい。*1
おかげでmacroの作成側は、型の名前さえ知っていればいいということになり非常に助かる。
*1:戻り値の型を引数によって変えることができる。