DIP53 and DIP49 (ver2) - New definitions for qualified constructors and postblits

Francesco Cattoglio francesco.cattoglio at gmail.com
Wed Dec 18 14:59:38 PST 2013


On Wednesday, 18 December 2013 at 22:26:32 UTC, Timon Gehr wrote:
> The natural interpretation of a const constructor is that it 
> constructs a const object directly. Such a constructor could 
> eg. initialize a field declared with a mutable type using some 
> external const reference.
>
> void foo(const(int[]) a){
>     // ...
>     struct S{
>         int[] a;
>         this()const{
>             this.a=a;
>         }
>     }
>     // ...
> }
>
> The DIP argues that such a construct is not particularly useful 
> and hence eliminates it for the purpose of using the syntax for 
> a _different_ concept. There is no way to implement the above 
> constructor using the new semantics.

Just my 2 cents: I have to agree. The const can be confusing and 
making it so that a different concept cannot be implemented 
really looks like a bad idea.


More information about the Digitalmars-d mailing list