我有一个struct enum,我使用它的值来定义数组大小;然而,编译器抱怨结构的值在编译时是未知的。
module main;
struct Point3D {
ubyte x;
ubyte y;
ubyte z;
}
void main() {
enum Point3D point = {x:1, y:1, z:1};
int testArray[point.x][point.y][point.z]; // ERRORS - X Cannot be read at compile time.
}
编译器告诉我它在编译时无法读取x(它甚至告诉我4次)。这是为什么?
答案 0 :(得分:2)
看起来像编译器错误...您可以通过将值保存到中间枚举来解决它:
enum Point3D!ubyte BlobSize = {x:32, y:32, z:32};
enum BlobX = BlobSize.x;
enum BlobY = BlobSize.y;
enum BlobZ = BlobSize.z;
blobcontents[BlobX][BlobY][BlobZ] data;