1 matches bool, 2 matches long
Mehrdad
wfunction at hotmail.com
Sun Apr 28 16:00:13 PDT 2013
On Sunday, 28 April 2013 at 22:40:33 UTC, Andrei Alexandrescu
wrote:
> int fun(short v1) { return 1; }
> int fun(long v1) { return 2; }
> So the behavior of bool in this case is consistent with the
> behavior of other integral types.
We all understand that, but in that case, it's the programmer's
fault (or intention!) for giving different behavior between the
two.
In the bool/long case, the programmer is writing perfectly
logical code, and it's the compiler that interprets it a weird
way.
You can see the difference more clearly here:
void print(long a, bool newline = false)
{
write(a);
if (newline)
writeln();
}
void print(bool newline = false)
{
if (newline)
writeln();
}
void main()
{
print(1);
print(2);
}
Are you really going to blame the programmer for expecting this
to print
1
2
or are you going to blame the language for not doing so?
More information about the Digitalmars-d
mailing list