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