On 02/27/2017 01:35 AM, Bastiaan Veelo wrote:
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);
}
}
Make a range or an array of function pointers from the AliasSeq of
function aliases:
----
import std.meta: staticMap;
import std.range: only;
enum fptr(alias f) = &f;
enum fptrs = staticMap!(fptr, funcs);
auto r = only(fptrs);
foreach (i, f; parallel(r))
values[i] = f(val);
----