SysTime and std.array.array

monarch_dodra monarchdodra at gmail.com
Sun Aug 25 12:01:13 PDT 2013


On Sunday, 25 August 2013 at 14:50:16 UTC, Paolo Invernizzi wrote:
> Hi all,
>
> --

I didn't fully investigate, but my guess is that you are seeing 
emplace bugs. Basically, *array* first allocates an array 
containing noise, and then tries to emplace data onto there. 
Unfortunatly, emplace does it wrong, calling "opAssign" when it 
shouldn't.

Further, SysTime is implemented (AFAIK), as a rebindable, which 
has an elaborate opAssign. This means that when you call emplace, 
it calls opAssign, which triggers your invariant, which fails, 
since data is just noise. This is why commenting out that data 
member also avoids the bug.

I'd tell you I have an open pull request that fixes it, but its 
been stuck without review for *months*.


More information about the Digitalmars-d-learn mailing list