読者です 読者をやめる 読者になる 読者になる

【D言語】関数とテンプレート関数のオーバーロード【dmd】

非テンプレート関数とテンプレート関数のオーバーロードが可能になりました。


今までは、


import std.stdio;

string hoge(T)(T t) if(!is(T == int))
{
    return "template";
}

string hoge(int i)
{
    return "function";
}

void main()
{
    12.0.hoge().writeln();
    1200.hoge().writeln();
}

のような、非テンプレート関数とテンプレート関数のオーバーロードが不可能でしたが、このコミット以降、可能になりました。

オーバーロードのために、わざわざ非テンプレート関数をテンプレート関数にする必要がなくなって良いですね。

担当:美馬(最近、雨がすごい)