Three legitimate bugs? (D1.061)

Don nospam at nospam.com
Tue May 18 12:08:38 PDT 2010


Don wrote:
> bearophile wrote:
>> Steven Schveighoffer:
>>> No, I was simply wrong :)  I think it's by design.  Which means the  
>>> original bug report is valid.
>>
>> The original bug report is valid, but I don't understand that code 
>> still. Is the const implying a static only in some situations?
>>
>> Why is this OK for the compiler:
>>
>> struct Foo {
>>     const Foo f = Foo();
>> }
>> static assert(Foo.sizeof == 1);
>> void main() {}
>>
>>
>> While this is not OK for the compiler?
>>
>> struct Foo {
>>     const Foo f;
>> }
>> static assert(Foo.sizeof == 1);
>> void main() {}
>>
>> Bye,
>> bearophile
> 
> In D1, the two are totally different. The second one is the only 
> situation in D1 where 'const' doesn't mean compile-time constant.
> I guess the same behaviour has been applied in D2, but I'm not sure if 
> that's intentional or not.

D'oh, should read the title. This was a D1 question. Yes it's 
intentional, and yes it's confusing.


More information about the Digitalmars-d-learn mailing list