On Sunday, 31 July 2016 at 05:22:40 UTC, AntonSotov wrote:
import std.stdio;
void myFunc(T)(in T val) {
static if(is(T == string)) {
writeln("string: ", val);
}
static if(is(T : long)) {
writeln("long: ", val);
}
static if // WHAT HERE ?
writeln("null");
}
}
int main(string[] args)
{
myFunc("abc");
myFunc(123);
myFunc(null);
return 0;
}
//--------------------------------------------------
How to transfer <null> as parameter type?
just have a look with pragma(msg, T) what the compiler is
inferring ;-)
-> typeof(null) seems to be a Voldemord type that can't be
expressed directly, hence you can do:
static if(is(T : typeof(null))) {
writeln("null");
}
... but does this really help you? A string can be null too, so
whatever you do you most likely should check that with `val is
null` too.