Head Const
ZombineDev via Digitalmars-d
digitalmars-d at puremagic.com
Mon Feb 15 15:45:26 PST 2016
On Monday, 15 February 2016 at 23:39:56 UTC, ZombineDev wrote:
> On Monday, 15 February 2016 at 23:28:28 UTC, Walter Bright
> wrote:
>> On 2/15/2016 3:11 PM, ZombineDev wrote:
>>> I'll leave to others to discuss whether a language solution
>>> is worth it, but I
>>> just wanted to point out there are two library solutions in
>>> this area:
>>> HeadConst [1] - PR pending, and
>>> Rebindable (tail const) [2] - already part of Phobos.
>>>
>>> Maybe if the language could express head const, it also makes
>>> sense to have tail
>>> const.
>>>
>>> [1]:
>>> https://github.com/D-Programming-Language/phobos/pull/3862
>>> [2]:
>>> http://dlang.org/phobos-prerelease/std_typecons.html#.Rebindable
>>
>> Transitive const is tail const.
>
> I used the term "tail const" as a mutable pointer/reference to
> const/immutable object, where transitivity starts from the
> object (not from the pointer, which is what currently happens
> if you type `const Object o`).
Just to clarify:
struct S;
const(S)* mutablePointerToS;
const(S)[] mutableArrayOfConstObjects;
Are examles of tail const. The only missing piece is the ability
to have a tail-const references to class objects.
More information about the Digitalmars-d
mailing list