On 03/11/2010 06:22 PM, bearophile wrote:
While trying to create a safe int, I have found a problem, this is reduced code:
struct Foo {
int x;
static Foo opAssign(int value) { return Foo(value); }
}
void main() {
Foo y = 0;
}
The compiler prints:
test.d(6): Error: cannot implicitly convert expression (0) of type int to Foo
While this generates no error:
Foo y; y = 0; is OK.
Do you know if there is a way to do that?
Bye and thank you,
bearophile
I think you want a constructor.
struct Foo {
int x;
static Foo opAssign(int value) { return Foo(value); }
this(int i) {x = i;}
}