On Sunday, 20 April 2014 at 07:52:08 UTC, matovitch wrote:

struct S
{
   ubyte get()  { return 0 ; }
   float get()  { return 0.; }
}

void main()
{
   S s;
float x = s.get(); // does'nt know which overload, does'nt compile.
}

What I do find interesting though, is that you are allowed to write the overload, whereas C++ would outright block you for ambiguity "at the source".

This means that with proper meta magic eg `__traits(getOverloadSet, S, "get")`, you could, *manually* resolve the ambiguity yourself.

Reply via email to