How do I check if a type is assignable to null at compile time?
Jack
jckj33 at gmail.com
Mon Mar 1 03:04:24 UTC 2021
On Saturday, 27 February 2021 at 01:23:06 UTC, H. S. Teoh wrote:
> On Sat, Feb 27, 2021 at 01:03:56AM +0000, Jack via
> Digitalmars-d-learn wrote:
>> On Friday, 26 February 2021 at 23:37:18 UTC, Murilo wrote:
>> > On Friday, 26 February 2021 at 05:25:14 UTC, Jack wrote:
>> > > I started with:
>> > >
>> > > enum isAssignableNull(T) = is(T : Object) || isPointer(T);
>> > >
>> > > but how do I cover all cases?
>> >
>> > You can check if it's null with this `variable is null` and
>> > you can test it with assert as in `assert(variable is null);`
>>
>> I mean a give type T not variablee
>
> Why not just:
>
> enum isAssignableNull(T) = is(typeof((T t){ t = null; }));
>
> ?
>
>
> T
works too, thanks but I ended up using Nathan S. solution which
is quite fine too:
enum bool isAssignableNull(T) = is(typeof(null) : T);
More information about the Digitalmars-d-learn
mailing list