Why D const is annoying
Mehrdad
wfunction at hotmail.com
Wed May 2 08:21:29 PDT 2012
"Steven Schveighoffer" wrote in message
news:op.wdokh6vteav7ka at localhost.localdomain...
> There are two solutions, both are horrible.
That's what scares me lol
> There is a possible 3rd solution. Don't use immutable/const, instead use
> information hiding.
> In other words, Your class is already technically "immutable", since name
> will never mutate beyond the first setting. This requires coder
> discipline, and has no help from the compiler.
Yup.
> But many languages that *don't* have const/immutable do well with this
> pattern (think Java strings).
Java strings are pretty poor for performance though. :\
You shouldn't be forced to choose between O(1) performance (versus O(n)) and
the correctness of your program.
> I have periodically mulled the idea of making a library-based solution for
> logical const. I think it would work, but you would have to be extremely
> cautious, and you lose some compiler guarantees for it.
> The most difficult part to deal with is how to prevent concurrent access,
> when an immutable object is always implicitly sharable.
Yeah, 'shared' also suffers from similar limitations...
> I have another idea which gets around the problem in a different way. I
> think it's essential to bringing arbitrary ranges in line with current
> array features. When I have some time to flesh it out, I'll propose it. I
> think we absolutely can't be finished with ranges until this is
> implemented.
Okay nice. I also think this is 100% relevant to the range issue, so I don't
think we will see a true fix until this problem is solved.
More information about the Digitalmars-d
mailing list