...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

template mixinつかえねー

ほとんど同じコードを一カ所に集めようとして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);
}

言いたいのはこういうことでした.