Justin Johansson <[email protected]> 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

Reply via email to