www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Q: (dmd 1.x) Difference between 'static const ...' and 'const ...'

reply Myron Alexander <someone somewhere.com> writes:
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.
Jun 25 2007
parent reply BCS <ao pathlink.com> writes:
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.
Jun 25 2007
parent reply Kirk McDonald <kirklin.mcdonald gmail.com> writes:
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
Jun 25 2007
parent Myron Alexander <someone somewhere.com> writes:
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.
Jun 25 2007