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