static initialization question

Weed resume755 at mail.ru
Wed Dec 10 15:13:58 PST 2008


Denis Koroskin пишет:
> On Thu, 11 Dec 2008 01:31:32 +0300, Weed <resume755 at mail.ru> wrote:
> 
>> But my class does not contain data that need initialization and can be 
>> created
>> in compile time
>>
>> code:
>>
>> import std.stdio;
>>
>> class MyClass
>> {
>>     invariant uint a = 0;
>> }
>>
>> void main()
>> {
>>     static MyClass c = new MyClass;
>>     writeln( c.a );
>> }
> 
> There is a memory allocation that may occurs at run time only.

In C++ analogous construction means creation of uninitialized static 
pointer (in compile time) and it's initialization at first execution 
this line in the function.

Why D does not behave that way on this construction?


More information about the Digitalmars-d-learn mailing list