On Tuesday, 23 August 2016 at 07:17:16 UTC, Jack Applegame wrote:
This is impossible since pointers to local variables are
unknown at compile time.
This is a bit strange, as the local variables aren't known either
and they seem to work. I do not want to get the address, rather
an alias to `&variable` expression.
But you can generate arguments list that contains functions
that return pointers at run-time:
template Repeat(int N, alias variable) {
auto ptr() @property { return &variable; }
import std.meta : AliasSeq;
static if(N == 1) alias Repeat = ptr;
else alias Repeat = AliasSeq!(ptr, Repeat!(N-1, variable));
}
void foo(int* x, int* y, int* z) {
}
void main() {
int bar = 42;
foo(Repeat!(3, bar));
}
Anyway, this solution works perfectly fine, thanks.