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.