On Sunday, 15 March 2015 at 23:13:58 UTC, Charles Cooper wrote:
And yes, I could use names. But then you are subject to name
clashes and using strings instead of types as member
identifiers is more prone to error anyways. Ever gotten this
wrong before --
void CRITICAL_TO_GET_THIS_RIGHT(uint cents, uint dollars);
....
alias params_t = Tuple!(uint, "dollars", uint, "cents");
....
params_t params;
params.dollars = 0;
params.cents = 99;
CRITICAL_TO_GET_THIS_RIGHT(params.expand);
// compilation succeeds, bank fails.
How would GetByType help here? Both members are uint, so you
can't distinguish them by type. And if you gave them distinct
types, the bad example here wouldn't compile anymore either.