Possible way to achieve lazy loading with const objects
Steven Schveighoffer
schveiguy at yahoo.com
Thu Sep 29 08:38:38 PDT 2011
On Thu, 29 Sep 2011 11:09:13 -0400, Christophe
<travert at phare.normalesup.org> wrote:
> "Steven Schveighoffer" , dans le message (digitalmars.D:145738), a
>>> It is always possible for a non-const version of opEqual to forward to
>>> the const version, so people willing to use a const version do not have
>>> to define a non-const version.
>>
>> Again, you still need to define both, this is not a good situation.
>
> No, I didn't express myself correctly. The non-const version should
> forward to the const version *by default*.
Fine, but if you want to define a non-const version that *doesn't* call
the const version, you have to define both. So even if you *don't* want
to deal with const, you still do. I should have been clearer, sorry.
Note that the compiler currently calls a global method which accepts two
non-const Objects. In order for it to support both const and mutable
versions, it would have to have 4 different functions.
I really don't think all this complexity is worth the benefit. Just learn
to use const properly, or don't use the operator system to do
comparisons. Object.opEquals should be const.
-Steve
More information about the Digitalmars-d
mailing list