Hi,

Is it possible to parallelise the iteration over an AliasSec? Ordinary parallel foreach does not work. I have tried submitting tasks to taskPool in an ordinary foreach, but I can't because i cannot be read at compile time.

int one(int) {return 1;}
int two(int) {return 2;}
int three(int) {return 3;}
int four(int) {return 4;}
int five(int) {return 5;}
int six(int) {return 6;}
int seven(int) {return 7;}
int eight(int) {return 8;}

int[8] values;

template eval_all(funcs...)
{
        void eval_all(int val)
        {
                import std.parallelism;
                //foreach (i, f; parallel(funcs))       // Tries to evaluate 
f(void)
                foreach (i, f; funcs)   // How do I parallelise this?
                        values[i] = f(val);
        }
}

void main()
{
        eval_all!(one, two, three, four, five, six, seven, eight)(42);
        foreach(i, val; values)
                assert(val == i + 1);
}

Thanks!

Reply via email to