digitalmars.D - Bug? Missing initializer...
- Garett Bass (16/16) Jan 16 2006 I was surprised by this error message. Is this the expected behavior? ...
- Garett Bass (27/27) Jan 16 2006 Of course, this makes it even worse, since "const" bar is initialized tw...
- Chris Sauls (3/8) Jan 17 2006 I do so as well, and I would consider your original post to be symptomat...
I was surprised by this error message. Is this the expected behavior? If not,
I'll post it to bugs, I just wanted a consensus first.
------------
module test;
private import std.stdio;
class Foo {
const int i;
this() {
i = 2;
}
this(char c) { // Error: missing initializer for const field i
this();
}
}
void main() {
auto Foo f = new Foo('a');
}
Jan 16 2006
Of course, this makes it even worse, since "const" bar is initialized twice.
Basically we can no longer chain constructors in classes with const members to
initialize. I don't know about you, but I use constants pretty frequently, and
this seriously impacts the elegance of my constructor code.
Regards,
Garett
------------
module test;
private import std.stdio;
class Foo {
class Bar { this() { writefln("Bar.this()"); } }
const auto Bar bar;
this() {
bar = new Bar;
}
/*
this(int i) { // missing initializer for const field bar
this();
writefln("Foo.this(%d)", i);
}
*/
this(float f) { // missing initializer for const field bar
this();
bar = new Bar;
writefln("Foo.this(%0.1f)", f);
}
}
void main() {
auto Foo f = new Foo(2.f);
}
Jan 16 2006
Garett Bass wrote:Of course, this makes it even worse, since "const" bar is initialized twice. Basically we can no longer chain constructors in classes with const members to initialize. I don't know about you, but I use constants pretty frequently, and this seriously impacts the elegance of my constructor code.I do so as well, and I would consider your original post to be symptomatic of a bug. -- Chris Sauls
Jan 17 2006








Chris Sauls <ibisbasenji gmail.com>