On Wed, 16 May 2012 13:17:17 -0400, Gor Gyolchanyan
<[email protected]> wrote:
On Wed, May 16, 2012 at 9:07 PM, Steven Schveighoffer
<[email protected]>wrote:
On Wed, 16 May 2012 12:21:27 -0400, Gor Gyolchanyan <
[email protected]> wrote:
if("" != []) assert("".length != 0);
Will this fail?
No. Ambiguities only come into play when you use 'is'. I highly
recommend not using 'is' for arrays unless you really have a good
reason,
since two slices can be 'equal' but 'point at different instances'.
For example:
auto str = "abcabc";
assert(str[0..3] == str[3..$]); // pass
assert(str[0..3] is str[3..$]); // fail
which is very counterintuitive.
-Steve
Doesn't assert("".length != 0) look extremely counter-intuitive?
That assert would always fail, if the if statement would ever succeed. It
doesn't look counter-intuitive, it looks like a bug!
You basically said:
if(0) assert("".length != 0);
-Steve