null as parametr
Seb via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Jul 30 22:32:28 PDT 2016
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.
More information about the Digitalmars-d-learn
mailing list