toDynamic

ちょっと前のは寝ぼけてたんだと思います…まともなの書き直した。

template toDynamic(T){
    static if (is(typeof(T[0]) U)){
        alias toDynamic!(U)[] toDynamic;
    } else {
        alias T toDynamic;
    }
}

void main(){
    writefln(typeid(toDynamic!(char[][])));
    writefln(typeid(toDynamic!(char[4][4])));
    writefln(typeid(toDynamic!(char[][4])));
    writefln(typeid(toDynamic!(char[4][])));
}

実行すると、出力は全部「char」になります。