Fast linear search for non-null key in slice of Nullable(T, T.max)

Per Nordlöw per.nordlow at gmail.com
Sun Sep 16 16:28:20 UTC 2018


If I have

     alias N = Nullable!(T, T nullValue)

fed as template parameter to another template how can I

at compile-time get the `nullValue`

?

I need this to implement fast linear search over a slice of type

     Nullable!(ulong, ulong.max)[]

searching for a non-null key without needing to call a 
combination of Nullable's `isNull` and `get` inside the loop. 
Which is significantly slower than knowing the non-null value to 
search for.  Which also can be implemented using sentinel-based 
search.

In my case it would have been convenient to have public access to

     Nullable!(T, T nullValue)._value

I need this in a hash table of mine that uses open addressing 
that makes use of Nullable to indicate empty slot.


More information about the Digitalmars-d-learn mailing list