Should the "front" range primitive be "const" ?

Simen Kjærås simen.kjaras at gmail.com
Thu Feb 1 07:52:32 UTC 2018


On Wednesday, 31 January 2018 at 01:45:57 UTC, H. S. Teoh wrote:
> I haven't thought through it carefully, but if .headConst is a 
> viable solution to the head-const problem, then conceivably we 
> could also extend it to deal with immutable payloads too.  Then 
> we could go from, say, RefCounted!(immutable(T)) to 
> RefCounted!(const(T)) generically, without any casting or 
> breaking the type system.  We could potentially expand the 
> scope of usefulness of immutable this way, if this approach 
> turns out to be workable.

Going from RefCounted!(immutable(T)) to RefCounted!(const(T)) is 
nice, but I'd like to see a conversion from, const(RefCounted!T) 
to RefCounted!(const(T)). While this cannot be done without 
casts, the logic can be put inside .headMutable(), and include 
relevant checks. This will make it much safer than having the 
programmer cast manually.

--
   Simen


More information about the Digitalmars-d-learn mailing list