immutable constructor and semantics of two construction syntaxes
Timon Gehr
timon.gehr at gmx.ch
Sun Apr 14 01:03:15 PDT 2013
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.
More information about the Digitalmars-d
mailing list