core.sys.posix.unistd link error
Ruslan Mullakhmetov
nobody at example.com
Sun Sep 22 13:12:11 PDT 2013
> I would be curious to see why you believe them to be the same.
Cause i'm a C++ programmer and there is no such thing as module
and module initializer, in fact object file initialization
consist of initialization of all its static variables somewhen
before the first call of a function in that object file (if any).
On Sunday, 22 September 2013 at 19:50:14 UTC, Dmitry Olshansky
wrote:
> 22-Sep-2013 15:52, Ruslan Mullakhmetov пишет:
>>
>> I found where the problem is.
>>
>> I used a system call (external C function) in class ctor. then
>> I
>> declared global variable of this class and INITIALZIED that
>> variable
>> inplace. If i move initalization in module static this()
>> everything
>> compiles.
>>
>> the code is:
>>
>> incorrect version:
>> http://dpaste.com/hold/1391530/
>>
>> correct:
>> http://dpaste.com/hold/1391523/
>>
>>
>> But now i need to sort out what the difference between
>> // global scope
>>
>> int a = 10;
>>
>
> This just puts calculated value 10 into TLS data section as
> initializer for a.
>
>> and
>>
>> int a;
>>
>> static this()
>> {
>> a = 10;
>> }
>>
>
> This defines a global with 0 initializer.
>
> Then static this is a function that is executed for each D
> thread on creation, following the module dependency chain (i.e.
> if there is static this in imported module it should be run
> first).
>
> I would be curious to see why you believe them to be the same.
>
>> I appreciate if somebody give a link or chapter number where
>> to read.
More information about the Digitalmars-d-learn
mailing list