D言語には未だに関数の戻り値の型の推論が無い。が、delegateには存在するので以下のようにすることで推論ができる。コピペが必要なので美しくは無いが、テンプレートと組み合わせる時に重宝するはず。
import std.traits;
typeof(ReturnType!((T t){return t;})) test(T)(T t){
return t;
}
関数テンプレートの戻り値の型の推論がdmd 2.015で対応されてしまった件。
auto test(T)(T t){
return t;
}