What's the authoritative difference between immutable and const for reference types?
Simen kjaeraas
simen.kjaras at gmail.com
Sat Jun 26 04:31:41 PDT 2010
Justin Johansson <no at spam.com> wrote:
> Specifically, I wish to have class which has a member variable which
> cannot be changed (and is guaranteed not to change) and this member
> variable happens to be a reference type (i.e. it's a pointer in C++
> parlance) and, further more, the instance of the class which that
> variable refers to is to be deep immutable.
>
> For instance, with
>
> class Foo
> {
> }
>
> class Bar
> {
> Foo foo;
> }
>
> consider instances of Foo to be in ROM and instances of Bar to be in RAM
> and once a Bar instance is constructed, the member variable foo itself
> is not allowed to be modified.
What you want is
class Bar
{
immutable Foo foo;
}
Now, I believe there are some problems constructing immutable objects, for
which the assumeUnique template in std.contracts is created.
--
Simen
More information about the Digitalmars-d
mailing list