模板

可以使用 template 引入模板。它可以包含函数和类以及其他构造。

template StaticArray(Type, size_t Length) {
     class StaticArray {
          Type content[Length];
          
          size_t myLength() {
            return getLength(this);
          }
     }
     
     private size_t getLength(StaticArray arr) {
          return Length;
     }
}

void main() {
    StaticArray!(int, 5) arr5 = new StaticArray!(int, 5);
    import std.stdio;
    writeln(arr5.myLength());
}