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
}
posted @ 2022-09-06 11:08  zjh6  阅读(14)  评论(0)    收藏  举报  来源