unittest affects next unittest
via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Aug 5 10:41:04 PDT 2014
On Tuesday, 5 August 2014 at 15:39:55 UTC, sigod wrote:
> On Saturday, 2 August 2014 at 06:46:04 UTC, Jonathan M Davis
> via Digitalmars-d-learn wrote:
>> On Fri, 01 Aug 2014 23:09:37 +0000
>> sigod via Digitalmars-d-learn
>> <digitalmars-d-learn at puremagic.com> wrote:
>>
>>> Code: http://dpaste.dzfl.pl/51bd62138854
>>> (It was reduced by DustMite.)
>>>
>>> Have I missed something about structs? Or this simply a bug?
>>
>> Don't do this with a member variable:
>>
>> private Node * _root = new Node();
>>
>> Directly initializing it like that sets the init value for
>> that struct, and
>> that means that every struct of that type will have exactly
>> the same value for
>> _root, so they will all share the same root rather than having
>> different
>> copies. You need to initialize _root in the constructor.
>>
>> - Jonathan M Davis
>
> So, it's a static initialization? Documentation didn't mention
> it. (In class' section only 2 sentences about it and none in
> struct's section.)
>
> This is different from many languages (C#, Java... don't know
> about C and C++). What was the reason to make this
> initialization static?
It's a consequence of the fact that every type in D has a default
initializer which is known at compile time.
More information about the Digitalmars-d-learn
mailing list