struct S
{
int i;
}
S[char[]] aa;
void main() {
aa["test"].i = 10;
}
Error: ArrayBoundsError
D1.046
looks like a bug to me or can't structs be aa's?
Saaa escribió:
struct S
{
int i;
}
S[char[]] aa;
void main() {
aa["test"].i = 10;
}
Error: ArrayBoundsError
D1.046
looks like a bug to me or can't structs be aa's?
But you never inserted anything in aa["test"].
You must do:
S s;
aa["test"] = s;
aa["test"].i = 10;
or:
S s;
s.i = 10;
a
> But you never inserted anything in aa["test"].
>
> You must do:
>
> S s;
> aa["test"] = s;
> aa["test"].i = 10;
>
> or:
>
> S s;
> s.i = 10;
> aa["test"] = s;
erm, ok
Thanks
So no creation on use :)
Personally I find the declation step clutter in the first case.
Maybe promote the bug to a requ
On Tue, Jul 28, 2009 at 6:09 PM, Saaa wrote:
>
>> But you never inserted anything in aa["test"].
>>
>> You must do:
>>
>> S s;
>> aa["test"] = s;
>> aa["test"].i = 10;
>>
>> or:
>>
>> S s;
>> s.i = 10;
>> aa["test"] = s;
>
> erm, ok
> Thanks
> So no creation on use :)
> Personally I find the declat
It won't happen. The behavior you want *used* to be the AA behavior
but was changed after several years and much complaining. It's not
going back.
Ah history :D
Saaa:
> struct S
> {
> int i;
> }
> S[char[]] aa;
> void main() {
> aa["test"].i = 10;
> }
>
> Error: ArrayBoundsError
> D1.046
Try:
struct S { int i; }
S[char[]] aa;
void main() {
aa["test"] = S(10);
}
In theory a Sufficiently Smart Compiler is able to optimize that code well.
Bye,
struct literals .. need to remember all D's features :)
D1.046 seems SS
aa["test"]=S();
works fine as well
> Try:
>
> struct S { int i; }
> S[char[]] aa;
>
> void main() {
>aa["test"] = S(10);
> }
>
> In theory a Sufficiently Smart Compiler is able to optimize that code
> well.
>
> Bye,
> bea