On Friday, 17 July 2015 at 15:52:45 UTC, TC wrote:
On Friday, 17 July 2015 at 15:30:42 UTC, Meta wrote:
https://issues.dlang.org/show_bug.cgi?id=14804
I'll probably be able to submit a PR for this sometime in the
next few days.
Thanks.
What I don't get is why this one works ok?
import std.typecons : Nullable;
struct Foo
{
int bar;
Nullable!int baz;
}
auto a = Foo(1);
auto b = Foo(1);
assert(a == b);
This may be because if your struct only contains primitive
values, the compiler will just do a memcmp to determine equality.
Don't quote me on that though.
Also is there some "nicer" way to init the struct with nullable
member with default constructor?
Now I'm using Foo(1, Nullable!int(2)) but just Foo(1, 2) would
be much nicer.
Same with calling functions with nullable params.
You can defined a custom constructor in Foo which will construct
the Nullable.
struct Foo
{
this(int n1, int n2)
{
bar = n1;
baz = n2;
}
//...
}