HaloO, John M. Dlugosz wrote:
When I mentioned this before, there was big flack over mentioning the way C++ did it. I think that must have been miscommunicated, since I wasn't even talking about summing all the arguments when he brought up "Manhattan dispatch".
That he there being me, I just want to record that I referred to the metric MMD discussion because you argued in favor of a way to balance rw with specificity of the input value. The spec currently speaks of "type narrowness" without defining that rigorously. My plea is for :(Int $x) and :(Int $x is rw) to be indistinguishable and thus unsuitable in the same multi. Furthermore I think that :(Num $x) and :(Int $x is rw) are distinguishable overloads as far as the input value is concerned but a user might be surprised that a call with a literal 3 fails where one with 3.1 doesn't or that 3.1 in a container is handled as 3 because of the rw. This would violate the principle of least surprise. BTW, what is a flack? Coming back to how C++ handles static overloading. How is the sort order of (int *), (int &), (int), (const int *), (const int &), (const int), (int * const) and (const int * const)? I'm too lazy to look up the details, sorry. Regards, TSa. -- "The unavoidable price of reliability is simplicity" -- C.A.R. Hoare "Simplicity does not precede complexity, but follows it." -- A.J. Perlis 1 + 2 + 3 + 4 + ... = -1/12 -- Srinivasa Ramanujan