不知道什么时候加入了“函数模板参数类型推导”和“类模板(改进型)”,文档中也是悄悄出现了。
函数模板参数类型推导:
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;
}
含义相同。