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?

Reply via email to