On Sunday, 1 September 2019 at 20:50:42 UTC, Paul Backus wrote:
On Sunday, 1 September 2019 at 20:42:28 UTC, Jabari Zakiya
wrote:
It still won't compile, with this error.
Error: AliasSeq!(modpg, res_0, restwins, resinvrs) is not an
lvalue and cannot be modified
Here's a gist of the code.
Top functions in code with issues are genPgParameters and
selectPG
https://gist.github.com/jzakiya/9227e4810e1bd5b4b31e949d1cbd5c5d
You can't do multiple assignments at once using AliasSeq; you
have to assign each variable individually:
auto parameters = genPgParameters(pg);
modpg = parameters[0];
res_0 = parameters[1];
restwins = parameters[2];
resinvrs = parameters[3];
There's still are problem When I do this.
auto parameters = genPgParameters(pg);
modpg = parameters[0];
res_0 = parameters[1];
restwins = parameters[2];
resinvrs = parameters[3];
The compiler says this:
Error: cannot implicitly convert expression
parameters.__expand_field_3 of type uint[] to shared(uint[])
If I comment out the last line the programs compiles (and crashes
when run since all the parameters aren't available).
So why does it accept parameter[2] but not [3] as they are both
defined the same?
Is this a compiler bug?
I have to say, getting this simple parameter passing to work in D
has been an infuriating experience. :-(