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.

Reply via email to