Thread overview | ||||||
---|---|---|---|---|---|---|
|
November 12, 2013 __gshared immutable array of immutable elements | ||||
---|---|---|---|---|
| ||||
In this declaration (tango.io.Console.d from Tango2): __gshared immutable immutable(char)[] Eol = "\r\n"; Aren't the two `immutable` keywords redundant? Why would `__gshared` be necessary for such an immutable type? Thanks |
November 12, 2013 Re: __gshared immutable array of immutable elements | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nicolas Sicard | Dne 12.11.2013 19:49, Nicolas Sicard napsal(a):
> In this declaration (tango.io.Console.d from Tango2):
>
> __gshared immutable immutable(char)[] Eol = "\r\n";
>
> Aren't the two `immutable` keywords redundant? Why would `__gshared` be
> necessary for such an immutable type?
>
> Thanks
Hi,
this declaration is equal to
__gshared immutable string Eol = "\r\n";
Those two immutables are not redundant, because it is an array of immutable chars (string), that is itself immutable.
The __gshared should not be necessary, but given some quirks with type system and concurrency, it may be necessary to have it. But this is just a guess from me.
Drasha
|
November 12, 2013 Re: __gshared immutable array of immutable elements | ||||
---|---|---|---|---|
| ||||
Posted in reply to Martin Drašar | On Tuesday, 12 November 2013 at 20:09:57 UTC, Martin Drašar wrote:
> Those two immutables are not redundant, because it is an array of immutable chars (string), that is itself immutable.
It is redundant because "immutable" is transitive. "immutable char[]" is equivalent.
But Tango has lot of meaningless and redundant attributes ( "final private" ;) )
|
November 12, 2013 Re: __gshared immutable array of immutable elements | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dicebot | On Tuesday, 12 November 2013 at 20:16:31 UTC, Dicebot wrote:
> On Tuesday, 12 November 2013 at 20:09:57 UTC, Martin Drašar wrote:
>> Those two immutables are not redundant, because it is an array of immutable chars (string), that is itself immutable.
>
> It is redundant because "immutable" is transitive. "immutable char[]" is equivalent.
>
> But Tango has lot of meaningless and redundant attributes ( "final private" ;) )
That´s what I thought. So no hidden subtlety here, just hyperprotection :)
Thanks
|
Copyright © 1999-2021 by the D Language Foundation