Thread overview
Q: (dmd 1.x) Difference between 'static const ...' and 'const ...' in templates
Jun 25, 2007
Myron Alexander
Jun 25, 2007
BCS
Jun 26, 2007
Kirk McDonald
Jun 26, 2007
Myron Alexander
June 25, 2007
Hello.

For DMD 1.x, let's say I have the following template:

> template structname (S) {
>    static const string structname = S.stringof[0..$-1];
> }

Is there any difference between 'static const ...' and 'const ...'?

Thanks.

Myron.
June 25, 2007
Reply to Myron,

> Hello.
> 
> For DMD 1.x, let's say I have the following template:
> 
>> template structname (S) {
>> static const string structname = S.stringof[0..$-1];
>> }
> Is there any difference between 'static const ...' and 'const ...'?
> 
> Thanks.
> 
> Myron.
> 

I may be wrong but, unless you use it as a mixin or inside of a class/struct, I don't think so.


June 26, 2007
BCS wrote:
> Reply to Myron,
> 
>> Hello.
>>
>> For DMD 1.x, let's say I have the following template:
>>
>>> template structname (S) {
>>> static const string structname = S.stringof[0..$-1];
>>> }
>> Is there any difference between 'static const ...' and 'const ...'?
>>
>> Thanks.
>>
>> Myron.
>>
> 
> I may be wrong but, unless you use it as a mixin or inside of a class/struct, I don't think so.
> 
> 

More generally: Using 'static' at module-level scope does nothing. If the actual declaration ends up at some other scope (whether the template was mixed-in or is simply located somewhere other than module scope) then the 'static' will be meaningful.

-- 
Kirk McDonald
http://kirkmcdonald.blogspot.com
Pyd: Connecting D and Python
http://pyd.dsource.org
June 26, 2007
Kirk McDonald wrote:
> BCS wrote:
>> Reply to Myron,
>>
>>> Hello.
>>>
>>> For DMD 1.x, let's say I have the following template:
>>>
>>>> template structname (S) {
>>>> static const string structname = S.stringof[0..$-1];
>>>> }
>>> Is there any difference between 'static const ...' and 'const ...'?
>>>
>>> Thanks.
>>>
>>> Myron.
>>>
>>
>> I may be wrong but, unless you use it as a mixin or inside of a class/struct, I don't think so.
>>
>>
> 
> More generally: Using 'static' at module-level scope does nothing. If the actual declaration ends up at some other scope (whether the template was mixed-in or is simply located somewhere other than module scope) then the 'static' will be meaningful.
> 

Thanks all.

Myron.