Getting the const-correctness of Object sorted once and for all

Steven Schveighoffer schveiguy at yahoo.com
Mon May 14 12:36:16 PDT 2012


On Mon, 14 May 2012 15:05:01 -0400, Alex Rønne Petersen
<xtzgzorex at gmail.com> wrote:

> On 14-05-2012 21:04, Mehrdad wrote:
>> On Monday, 14 May 2012 at 18:52:06 UTC, deadalnix wrote:
>>> The only reason I'd see a toSting function as non pure or non const is
>>> memoize. It can be tackled with lib support in phobos.
>>> What are other uses cases ?
>>
>> Not necessarily 'memoization' -- you could be instead querying
>> another object for this information, which may not be const.
>> (Say, a network connection.)
>
> That's actually a very, very good point.
>

Yes, the use case for logical const is when an object *doesn't own* a
reference.  I proposed a logical const solution a long time ago that
called it "nostate" instad of "mutable".

But there is a really big problem with logical const that makes it not
seem worth the trouble  of having it -- the syntax.  You would need a lot
of keywords and/or features to correctly describe relationships between
objects.  I just don't think people would tolerate it.

Hm... I just had a really good idea (I will divulge it in another post) on
how to implement logical const without altering the language and/or
compiler.

-Steve


More information about the Digitalmars-d mailing list