dmd 2.063 beta 5

deadalnix deadalnix at gmail.com
Fri May 24 22:32:27 PDT 2013


On Friday, 24 May 2013 at 14:04:33 UTC, Dicebot wrote:
> On Friday, 24 May 2013 at 13:58:32 UTC, Steven Schveighoffer 
> wrote:
>> Being able to dictate the .init data is very powerful and 
>> useful.  You can't remove that feature.
>
> Sure, I completely agree, thus the idea adding of CTFE-able 
> constructor which will become the T.init for structs.
>
>> But the point I'm making is that the syntax IS consistent.  It 
>> just never worked before, because of the implicit 'static'
>
> No it is not. It never worked before because it was simply 
> broken. Now it works properly from the point of spec, but it is 
> inconsistent from the point of language design:
>
> int x = 5; // can you tell without looking at scope if it 
> really initializes x or just defines .init for aggregate?
>
> Initializer syntax does not really make sense for non-static 
> aggregate members at all, mutable or not.

They define a default value for the field. The constructor can 
override it. It is expected that a constructor is able to 
construct an object.


More information about the Digitalmars-d-announce mailing list