Is alias equality inconsistent?
Jens Mueller
jens.k.mueller at gmx.de
Fri May 13 12:11:58 PDT 2011
Hi,
I find that comparing for alias equality is a bit odd. Maybe somebody
can shed some light into it.
int a = 1;
int b = 1;
assert(a is b);
but
int[1] aFixedArray = [1];
int[1] bFixedArray = [1];
assert(aFixedArray !is bFixedArray);
It behaves as specified in TDPL p. 57:
"If a and b are arrays or class references, the result is true if and
only if a and b are two names for the same actual object;
Otherwise, a is b is the same as a == b."
But fixed-size arrays have value semantics as int, float etc. So why is
alias equality not consistent with value vs. reference semantics? Why
this exception for fixed-size arrays?
Jens
More information about the Digitalmars-d
mailing list