ほとんど同じコードを一カ所に集めようとしてtemplate mixinを使うとコードの可読性が著しく落ちて読みにくい.
マクロと同じような使い方をしちゃいけないのかなー.
template Hoge(TL...) { alias ReplaceAll!(int, long, Reverse!(TL)) SomeTypeTuple; } mixin Hoge!(int, long, char, double); //ここでSomeTypeTuple使う
これよりも
template Hoge(TL...) { alias ReplaceAll!(int, long, Reverse!(TL)) result; } alias Hoge!(int, long, char, double).result SomeTypeTuple; //ここでSomeTypeTuple使う
自分にはこっちの方がわかりやすい.
どういう風に使ったらいいのかな?
追記
わかりにくい説明な上,言いたいこととちょっと違うことを書いている気がする・・・だめぽ.
import std.stdio; template Foo() { int result = x + y + z; } template Bar(int X, int Y, int Z) { enum Bar = X + Y + Z; } void main() { int x = 1, y = 2, z = 3; mixin Foo!();// 入出力(環境の何を使って何を算出したのか)がわからない writefln(result); alias Bar!(x,y,z) result2;//入出力がこの行に明記されている writefln(result2); }
言いたいのはこういうことでした.