2014-03-04 74 views
2

使用模板初始化結構的正確方法是什麼?使用模板初始化結構

這似乎並不工作:

struct Point3(T) if(isNumeric!T) { 
     T x; 
     T y; 
     T z; 
} 

enum Blocksize = Point3!ubyte{x:32, y:32, z:32}; 

回答

5

你似乎是混合兩種不同的語法:

  1. 結構initializaters:

    enum Point3!ubyte Blocksize = {x:32, y:32, z:32}; 
    
  2. 結構文字:

    enum Blocksize = Point3!ubyte(32, 32, 32); 
    

上面兩種情況,將工作。

2

d沒有名爲PARAMS所以採取了那些和你的代碼將工作:

enum Blocksize = Point3!ubyte(32, 32, 32); 

只要把ARGS在同位置列表作爲結構。如果你想打開其他選項,你也可以在結構體中定義構造函數。