2013/4/23 Mehrdad <wfunct...@hotmail.com>

> On Monday, 22 April 2013 at 23:35:56 UTC, Flamaros wrote:
>
>> I started a project a month ago, and for the moment my feeling is just:
>> D can already be used as it.
>>
>
> Input:
>         import std.stdio;
>         struct S { string a; }
>         pragma(msg,           S("x") == S("x".idup));
>         void main() { writeln(S("x") == S("x".idup)); }
>
> Output:
>         true
>         false
>
> Nope, still broken.
>

This is mostly expected behavior. During compilation value identities are
not guaranteed.
Because compile time evaluation is always done after constant folding, and
constant folding would fold "x".idup to "x", then S("x") == S("x") is
evaluated to true.

Kenji Hara

Reply via email to