Check if template has been passed a reference type or value type?

via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Jun 7 08:39:15 PDT 2015


On Sunday, 7 June 2015 at 15:17:27 UTC, 1967 wrote:
> I've got a template that takes in a type. Sometimes the type is 
> a class, sometimes a struct, sometimes just an int. It doesn't 
> much matter what it is, but if it's a reference type I need to 
> check if it's null so I can make it not null before using it. I 
> get an error if I try to check if a value type is null so I'd 
> like to put a "static if" to check if the type passed to the 
> template is a nullable one so I can avoid checking the value 
> types passed in. What do I have to do to check for nullability?

You can directly check whether it allows comparison with null:

     static if(is(typeof(value is null) : bool)) {
         if(value is null)
           ...
     }


More information about the Digitalmars-d-learn mailing list