On Monday, 18 August 2014 at 01:22:00 UTC, Ali Çehreli wrote:
The following solution relies on an alias template parameter
and a template constraint. The code covers both Nullable
variants:
import std.typecons;
auto nullable(T)(T value)
{
return Nullable!T(value);
}
unittest
{
auto x = nullable(42.5);
assert(is(typeof(x) == Nullable!double));
}
auto nullable(alias nullValue, T)(T value)
if (is (typeof(nullValue) == T))
{
return Nullable!(T, nullValue)(value);
}
unittest
{
auto x = nullable!(int.max)(3);
assert(is (typeof(x) == Nullable!(int, int.max)));
}
void main()
{}
Ali
Great! Thx.