On Wednesday, 21 October 2015 at 22:49:16 UTC, Marco Leise wrote:
Am Wed, 21 Oct 2015 12:49:35 -0700
schrieb Ali Çehreli <acehr...@yahoo.com>:

On 10/21/2015 12:37 PM, Sigg wrote:

 > cause at least few more "fun" side effects.

One of those side effects would be function calls binding silently to another overload:

void foo(bool){/* ... */}
void foo(int) {/* ... */}

   auto a = 0;  // If the type were deduced by the value,
   foo(a);      // then this would be a call to foo(bool)...
                // until someone changed the value to 2. :)

Ali

God forbid anyone implement such nonsense into D !
That would be the last thing we need that we cannot rely on
the overload resolution any more. It would be as if making 'a'
const would change the overload resolution when none of the
overloads deal with constness...


AFAIK it was implemented long time ago and discussed last time couple of years ago with example similar to Ali's.

void foo(bool)
void foo(int)

foo(0); // bool
foo(1); // bool
foo(2); // int

Reply via email to