7
是否可以編寫單個模板函數來遞增不同結構的(數字)字段?例如:D中的結構和元組模板參數
struct Color
{
ubyte a,r,g,b;
}
struct Point
{
double x, y;
}
我想是這樣的:
T update(T, A)(T t, A a)
if (is(T == struct))
{
auto vals = t.tupleof;
foreach (i; 0 .. vals.length) {
vals[i] += a; // error: i cannot be read at compile time
}
return T(vals); // convert back to struct
}
我也試着寫接受元組函數模板,但元組總是被擴展,從而可以防止編譯器匹配正確的模板。 謝謝。
神奇的魔法! – YGL