d用户以缓冲为成员类型

原文

struct S(T, size_t memberCapacity = size_t.max) {
  static if (memberCapacity != size_t.max) {
    // 用户想要成员数组
    T[memberCapacity] arr;

    void initMemberArray() {
      // 初化...
    }

  } else {
    void initMemberArray() {
      // 这里,不用.
    }
  }

  // ...
}

void main() {
  auto a = S!int();
  auto b = S!(int, 42)();

  pragma(msg, a.sizeof);  // 1
  pragma(msg, b.sizeof);  // 168
}

可用-profile=gc跟踪GC分配.

posted @ 2022-09-02 14:32  zjh6  阅读(21)  评论(0)    收藏  举报  来源