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
}
浙公网安备 33010602011771号