How will we fix opEquals?

Peter Alexander peter.alexander.au at gmail.com
Thu Feb 10 00:58:25 PST 2011


On 10/02/11 8:19 AM, Don wrote:
> Andrei once stated a worthy goal: as far as possible, const should be
> opt-in: it should be possible to code without requiring const on
> everything.
>
> opEquals() is in conflict with this, since it is a member function of
> Object.
>
> (1) If it is a const member function, then it will have a viral effect
> on all objects -- any function called by opEquals will have to be marked
> const.
> (2) If it is not const, then const objects cannot be compared!
>
> Currently, it's not const, but the problem isn't visible because of
> compiler bug 5080. (Same problem applies to opCmp).
>
> How will we break this dilemma?

It's not possible. You need logical const to make const opt-in. This has 
been argued many times by several people.



More information about the Digitalmars-d mailing list