Thread overview
__gshared static
Apr 24, 2015
Márcio Martins
Apr 24, 2015
bearophile
Apr 24, 2015
Márcio Martins
April 24, 2015
Hi!

I just stumbled across what seems like a misunderstanding on my side about these keywords. Can someone help clarify these for me?

```
__gshared static int foo;
__gshared int foo;
```

What are the storage and semantic differences between those two, if any?

Cheers,
-M
April 24, 2015
On 4/24/15 1:22 PM, "=?UTF-8?B?Ik3DoXJjaW8=?= Martins\" <marcioapm@gmail.com>\"" wrote:
> Hi!
>
> I just stumbled across what seems like a misunderstanding on my side
> about these keywords. Can someone help clarify these for me?
>
> ```
> __gshared static int foo;
> __gshared int foo;
> ```
>
> What are the storage and semantic differences between those two, if any?

These are the same, __gshared overrides static.

-Steve
April 24, 2015
Steven Schveighoffer:

> These are the same, __gshared overrides static.

Isn't forbidding "__gshared static" a good idea then, to avoid user confusion?

Bye,
bearophile
April 24, 2015
On 4/24/15 2:47 PM, bearophile wrote:
> Steven Schveighoffer:
>
>> These are the same, __gshared overrides static.
>
> Isn't forbidding "__gshared static" a good idea then, to avoid user
> confusion?

Surely, prohibiting non-functioning attributes is good when it's obvious that they do nothing.

BUT... there is an issue:

static: __gshared int x;

Should this be an error? I believe inside the compiler, the reason unused attributes are ignored are because this is handled the same way, and making it error would make all of them error. But that's kind of a guess.

-Steve

April 24, 2015
On Friday, 24 April 2015 at 18:05:22 UTC, Steven Schveighoffer wrote:
> On 4/24/15 1:22 PM, "=?UTF-8?B?Ik3DoXJjaW8=?= Martins\" <marcioapm@gmail.com>\"" wrote:
>> Hi!
>>
>> I just stumbled across what seems like a misunderstanding on my side
>> about these keywords. Can someone help clarify these for me?
>>
>> ```
>> __gshared static int foo;
>> __gshared int foo;
>> ```
>>
>> What are the storage and semantic differences between those two, if any?
>
> These are the same, __gshared overrides static.
>
> -Steve

Thanks Steve!