On 04/14/2013 02:48 AM, Ali Çehreli wrote:
When immutable constructors are implemented, will there be a difference
between the two syntaxes below?

struct MyStruct
{
     int i;

     // ... assume that MyStruct has both
     // mutable and immutable constructors ...
}

     auto s0 = immutable(MyStruct)("some parameter");

     immutable s1 = MyStruct("some parameter");

The former syntax constructs an immutable literal, so the type of s0 is
deduced to be immutable.

The latter syntax constructs a mutable literal and blits it to the
immutable s1.

Should the former syntax call the immutable constructor and the latter
syntax call the mutable constructor?

Ali

I guess so. But it does not really make sense to declare an immutable constructor if the struct instances implicitly convert between mutable and immutable.

Reply via email to