In article <411DFBE1.7060007@opencloud.com>,
Oliver Jowett <oliver@opencloud.com> writes:
> I think you just made my point for me. C++ allows default parameters
> and resolves the ambiguity by disallowing ambiguous calls when they
> happen.
> I'm not sure why C++ doesn't disallow it at declaration time off the
> top of my head -- perhaps because you'd get inconsistent behaviour if
> the candidates were split across compilation units.
IIRC this was due to multiple unheritance. You could inherit methods
with the same name and parameter list from two different base classes.
Disallowing that at declaration time would mean disallowing
inheritance (even indirectly) from these two base classes, even though
the derived class didn't use the ambiguous methods.