Am Thu, 31 Oct 2013 11:58:18 +0100 schrieb "Andrea Fontana" <nos...@example.com>:
> Check this simple code: > > import std.stdio; > import std.conv; > > bool is_zero(T)(T i) { return to!int(i) == 0; } > > void main() { "0".is_zero.writeln; } > > This code print "true" of course. > > If you replace "to!int(i) == 0" with "i == 0" compiler gives this > error: > > "Error: no property 'is_zero' for type 'string'" > > But: > > is_zero("0") > > instead gives this: > > Error: incompatible types for ((i) == (0)): 'string' and 'int' > > Shoudn't "0".is_zero give this error too? If you see it as a universal function call, yes. But if you see it as an augmented property of string, then no. -- Marco