使用模板初始化结构的正确方法是什么?
这似乎不起作用:
struct Point3(T) if(isNumeric!T) {
T x;
T y;
T z;
}
enum Blocksize = Point3!ubyte{x:32, y:32, z:32};
答案 0 :(得分:5)
您似乎混合了两种不同的语法:
结构初始化器:
enum Point3!ubyte Blocksize = {x:32, y:32, z:32};
结构文字:
enum Blocksize = Point3!ubyte(32, 32, 32);
以上两种都可行。
答案 1 :(得分:2)
D没有命名参数,所以把它们拿出去,你的代码就可以了:
enum Blocksize = Point3!ubyte(32, 32, 32);
将args放在与struct相同的位置列表中。如果要打开其他选项,还可以在结构中定义构造函数。