<div dir="ltr"><div><div class="gmail_extra"><div class="gmail_quote">2013/4/23 Mehrdad <span dir="ltr"><<a href="mailto:wfunction@hotmail.com" target="_blank">wfunction@hotmail.com</a>></span><br><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im">On Monday, 22 April 2013 at 23:35:56 UTC, Flamaros wrote:<br>
</div><div class="im"><blockquote class="gmail_quote" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

I started a project a month ago, and for the moment my feeling is just:<br>
D can already be used as it.<br>
</blockquote>
<br></div>
Input:<br>
        import std.stdio;<br>
        struct S { string a; }<br>
        pragma(msg,           S("x") == S("x".idup));<br>
        void main() { writeln(S("x") == S("x".idup)); }<br>

<br>
Output:<br>
        true<br>
        false<br><br>
Nope, still broken.<br>
</blockquote></div><br></div></div><div class="gmail_extra">This is mostly expected behavior. During compilation value identities are not guaranteed.</div><div class="gmail_extra">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.<br class="">
</div><div class="gmail_extra"><br></div><div class="gmail_extra">Kenji Hara</div></div>