On Sun, 10 Jul 2011 19:51:10 +0200, Daniel Murphy <yebbl...@nospamgmail.com> wrote:

"bearophile" <bearophileh...@lycos.com> wrote in message
news:ivcg7j$ooj$1...@digitalmars.com...
Jacob Carlborg reminds that 1.f conflicts with the UFCS, I think the
suggestion by Daniel Murphy of the special case is not worth it.


If the only reason for removing 1.f and 1.L is to aid ufcs we should also
get rid of leading underscores after the decimal point.  eg 1._3 also
conflicts with ufcs.  And don't forget hex floating point literals.

Now if f and L were functions taking an int as their first parameter,
they could be defined thusly:

@ufcs @property
float f(int n) {
    return n;
}

@ufcs @property
double L(long n) {
    return n;
}

Furthermore, magic could be added:

@ufcs @property
auto opDispatch(string name)(int n) if (isValidHexString(name)) {
    static if (too many digits for real) {
        return BigFloat(to!string(n) ~ "." ~ name);
    } else {
        // convert to real and return
    }
}


See? Marvellous! :p
--
  Simen

Reply via email to