On Monday, 6 February 2023 at 09:17:07 UTC, Ali Çehreli wrote:
I adapted staticMap's implementation to two sets of arguments:
So I've got this implementation, but wonder if I can generalise
the arg splitting portion rather than write it manually for each
N?
```d
template staticMapN(size_t N, alias fun, args...) if (args.length
% N == 0) {
alias staticMapN = AliasSeq!();
static foreach (i; 0 .. args.length / N)
static if (N == 1)
staticMapN = AliasSeq!(staticMapN, fun!(args));
else static if (N == 2)
staticMapN = AliasSeq!(staticMapN, fun!(args[0 .. $ /
N][i], args[$ / N .. ($ / N) * 2][i]));
else static if (N == 3)
staticMapN = AliasSeq!(staticMapN, fun!(args[0 .. $ /
N][i], args[$ / N .. ($ / N) * 2][i], args[($ / N) * 2 .. ($ / N)
* 3][i]));
// etc
}
```