dmd 2.063 beta 5
Steven Schveighoffer
schveiguy at yahoo.com
Thu May 23 07:57:59 PDT 2013
On Thu, 23 May 2013 10:16:13 -0400, Iain Buclaw <ibuclaw at ubuntu.com> wrote:
> On 23 May 2013 14:52, Steven Schveighoffer <schveiguy at yahoo.com> wrote:
>> Adding an initializer simply changes the default value from 0 to
>> whatever
>> you want. It's quite consistent IMO.
>>
>
> Don't think it makes sense in non-POD structs...
>
> Haven't tested, but is this an error?
>
> struct S
> {
> const int;
>
> this (int x)
> {
> this.x = x; // here
> }
> }
>
> S(5);
Well, since you didn't name the member, it didn't compile right off :)
But after I fixed that, it does compile, both on 2.061 and the beta.
However, there is definitely a bug somewhere, this compiles:
struct S
{
const int x;
int y;
this (int x)
{
y = this.x;
writeln(this.y);
this.x = x;
writeln(this.x);
this.x = 0;
writeln(this.x);
}
}
outputs:
0
5
0
Seems like const qualifier for members is simply ignored inside the ctor,
it should only be ignored until it is set, or until it is used.
-Steve
More information about the Digitalmars-d-announce
mailing list