謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

ASTマクロのテンプレートってどんな感じになるだろう

D言語ではASTマクロが実装される予定だ。んでこの仕様の予定を見ると文には言及されているが、式には言及されてないのが気になる…がまぁ今回は気にしない。これにテンプレートを使ったらどうなるのか考えてみることにする。実装的には、シンボルが無いので他のテンプレートとはちょっと違った感じになるはずだけど、特に問題は無いはず。いや、展開した後でパースが行われるなら実装的な問題はあるけど、それは無いと予想。

template test(T){
  macro test(){
    T t;
  }
}

void main(){
  test!(int)();
  writefln(t);
}

んでこれで何ができるか。何ができるんだろう。というかmacroに直接型とか渡せないのかなぁ。式だけでなく。今の段階だと良く分からないが、もしできるとしてもテンプレートだと展開の遅延ができるので…というかそうなるとalias foo_macro(int) bar;やtemplate foo(alias bar){};foo!(macro_a);ができてくれればあまり変わらないような。実体の共有はmacroでは意味ないんだし。
結論としてはあまり意味ないって事で。重大な事を忘れてる気もするけど。