D语言模板最近的一些改进

阅读更多
不知道什么时候加入了“函数模板参数类型推导”和“类模板(改进型)”,文档中也是悄悄出现了。

函数模板参数类型推导:
template Square(T)
{
T Square(T t)
{
return t * t;
}
}
以前调用时必须显式实例化:
writefln("The square of %s is %s", 3, Square!(int)(3));

现在可以使用自动推导了:

writefln("The square of %s is %s", 3, Square(3)); // T is deduced to be int


类模板以前必须这样写:
template Bar(T)
{
class Bar
{
T member;
}
}

现在可以写为:
class Bar(T)
{
T member;
}

含义相同。

你可能感兴趣的:(D语言)