On 01/02/2013 01:07 AM, monarch_dodra wrote:
> I was wondering: Does Phobos require that user defined opEquals (and
> opCmp) be const?

Sorry that I am not adding to this topic directly but I will repeat an observation of mine. My experience is with C++ and D; if there are solutions to this issue in other languages, I am not aware of them.

What business does an interface have to affect the implementation of a subclass that it has no idea of? When I introduce a function in an interface (or an abstract base class in C++) I am split between making it const or non-const.

const seemingly results in safer user code but either constrains the implementation or forces it to use unsafe casts (or the 'mutable' keyword in C++).

non-const is seemingly not restrictive but it lowers the usability of the type.

As has already been mentioned, we must embrace 'inout' as a solution and fix issues with its semantics and implementation.

Ali

Reply via email to