On Monday, 15 July 2013 at 15:08:58 UTC, Dicebot wrote:
On Monday, 15 July 2013 at 14:50:04 UTC, JS wrote:
Why does isMutable and isAssignable return true for a struct/class that are immutable?

immutable struct A { }

isMutable!A returns true.

looks like

immutable struct A
{
    int a;
}

acts as a

struct A
{
    immutable:
        int a;
}

Now, I don't see this use case (qualified aggregate definition) anywhere in spec and this may be intended behavior. But I do agree this looks misleading.

Yes, I need immutable to do what it does but also need a way to emulate an enum.

This is because I need to constrain my templates properly. If struct A isn't immutable then it is no different than any other struct which is bad because I want only enum like structs.

maybe immutable immutable(struct) A would be a good way to specify this.

An immutable struct should be similar to an enum... a purely compile time construct not meant to be instantiated in any way.

Reply via email to