Nullable instantiator anyone?

"Nordlöw" via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Aug 18 02:30:07 PDT 2014


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.


More information about the Digitalmars-d-learn mailing list