The Status of Const
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Mon Aug 16 07:58:52 PDT 2010
Steven Schveighoffer wrote:
> Hopefully, Andrei will eventually get around to dealing with const in
> std.container and see what a mess it will become without some sort of
> tail-const for ranges.
I believe at some point an approach will come forth. Here are a few
quick thoughts on this large exchange:
* The discussion this time around reflects a deep and thorough
understanding of the issues involved throughout the community.
* I think head-const has its usefulness, and tail-const is obviously in
need for serious attention. Ideally we should reach, with no or minimal
language changes, the point at which full const is the built-in power
tool and head-const and tail-const are library artifacts. I think it's
quite easy to define a Final!T template that is head-const, and
Rebindable!T is a starting point for tail-const classes. We need to
figure a pattern for achieving tail constness for general types.
* Const and immutable will be used less often than in C++. This might
seem a weakness to those coming from C++ where const can and should be
sprinkled often, but it is a natural consequence of the relative
restrictions imposed by const in C++ vs. D. D's const is more
restrictive, and as such will find its way in fewer idioms than C++'s.
* Perhaps a good starting point is to look at std.container.SList and
see how const(SList!T) can be manipulated.
Andrei
More information about the Digitalmars-d
mailing list