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]);
}

Reply via email to