On 5/27/2014 10:40 PM, Jesse Phillips wrote:
When he explained why C++ inferred a const int type as int, he tripped me up
because D does drop const for value types. But D does the simple to explain
thing, may not be the expected thing (seen questions about it in D.learn), but
it is simple to explain.
We have at times opted for an "easy to explain" rule rather than a semantically
perfect one. For example, I've rejected several proposals to make function
overloading more fine-grained on such grounds.
I've rarely met anyone who could explain how C++'s function overloading rules
actually work, they just try arbitrary things until it selects the function they
want it to.