Use case?
No. I need to be able to make an array "factorials" is not evaluated, if I don't.
import std.stdio; enum N = 15; static int[] factorials = memoizeFactorials(N); // lazy array? :) int[] memoizeFactorials(int n) { if (!__ctfe) {// Make sure that this function is never called at run time
assert(false); } int[] result = new int[n]; result[0] = 1; foreach (i; 1 .. n) { result[i] = result[i - 1] * i; } return result; } void main() { writeln(factorials[10]); }