````D enum DIR { UP = 0, DOWN, LEFT, RIGHT, UPLEFT, UPRIGHT, DOWNRIGHT, DOWNLEFT, }
BITMAP*[2][DIR] bmps; // ... bmps[DIR.UP][0] = nope. bmps[DIR.UP][0] = new BITMAP *; // nope bmps[DIR.UP][0] = new BITMAP; // nopebmps[DIR.UP] = new BITMAP*[2]; // compiles. runtime range violation.
```` I swear this all worked fine when it was just: ````D bmps[DIR] bmps; ````