ミックスイン

RubyのMixinとは割と違う感じ。RubyのMixinのようにも使えるけど。
template内のスコープはmixinされた時点での物らしいのでこういうヘンテコなコードが書ける。

import std.c.stdio;

int hige = 1;

template Hoge(){
    int hoge(){
        return hige;
    }
}

void main(){
    mixin Hoge;
    printf("%d\n", hoge());
    int hige = 5;
    printf("%d\n", hoge());
}

出力

C:\d>mixin
1
1

まあ当然かあ。
templateなのがちょっとイマイチだけどまあ便利。