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;
    }

    //...
}

Reply via email to