On Monday, 29 June 2015 at 19:29:37 UTC, sigod wrote:
Hi, everyone.

```
import std.typecons : Nullable;

class Test {}

Nullable!Test test;
assert(test.isNull);
```

Why does `Nullable` allowed to be used with reference types (e.g. classes)?

P.S. I have experience with C#, where `Nullable<T>` cannot be used with reference types. And it sounds logical to me.

It's a design mistake in Nullable. I would suggest that either never use Nullable with a type that already has a null value, or use the "overload" of Nullable that takes a null value, and set it to null. Example:

Class Test {}
alias NullableTest = Nullable!(Test, null);

Reply via email to