D模板基础:参数推导和值类型
介绍
因此,您已经开始编写D代码,并乐于编写简单的模板(例如下面的模板)来计算点积。
// value.d
import std.stdio : writeln;
import std.traits : isFloatingPoint;
/*
To compile:
dmd value.d && ./value
*/
T dot (T)(T[] x, T[] y)
if (isFloatingPoint ! T)
{
T ret = 0 ;
foreach (i; 0 .. x.length)
ret += x[i] * y[i];
return ret;
}
void main ()
{
auto x = [ 1.0 , 2.0 , 3.0 ];
writeln( " dot: " , x.dot(x));
}
模板参数