static const (D 1.x)

Bill Baxter dnewsgroup at billbaxter.com
Fri Sep 21 05:17:45 PDT 2007


Don Clugston wrote:
> Bill Baxter wrote:
>> I've got a situation like this:
>>
>> struct A
>> {
>>   opEquals
>>   int idx = -1;
>> }
>>
>>
>> class Foo(Type)
>> {
>>    ...
>>    static const A  StaticA;
>> }
>>
>>
>> But it doesn't work when I try to do something like this in a function:
>>
>>
>>    A myA;
>>
>>    if (myA == Foo!(Type).StaticA) { // <-- error here
>>    }
>>
>> The error I get is:
>>    Error: can only initialize static const StaticA inside static 
>> constructor
>>
>> Is this a bug?
>> I notice that it compiles if I make StaticA just "static" instead of 
>> "static const".
>>
>> At the very least the compiler error text seems wrong since I'm not 
>> trying to initialize anything.
>>
>> --bb
> 
> Is StaticA getting initialized somewhere?
> If not, that's probably the root cause (and the error message is a bit 
> misleading).

It's not getting initialized anywhere, but it's a struct, so it has a 
default value with which it should be implicitly initialized.

Are you saying that I should be doing
     static const A StaticA = {-1};
?
I'll give it a try, but it doesn't seem like that should be necessary.
--bb


More information about the Digitalmars-d-learn mailing list