...ing logging 4.0

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

関数テンプレートの戻り値型推論

今までは無名関数しか戻り値型推論できなかったのが関数テンプレートでもできるようになった.

// dmd 2.015
import std.stdio;
auto add(T,U)(T t, U u){return t+u;}
auto sub(T,U)(T t, U u){return t-u;}
void main()
{
  writefln(add(1,2));
  writefln(sub(1,2));
}

無名関数の戻り値型推論を使うとこう.

import std.stdio;
void main()
{
  auto add = (int i, int j){return i+j;};
  auto sub = (int i, int j){return i-j;};
  writefln(add(1,2));
  writefln(sub(1,2));
}

使いどころが違う.