Cannot check function address

frame frame86 at live.com
Wed May 25 05:40:20 UTC 2022


On Wednesday, 25 May 2022 at 04:34:43 UTC, Steven Schveighoffer 
wrote:

> Well, you can possibly work around the type system, but I don't 
> know what the compiler thinks you have there.

This really bothers me and I put this test cases:


```d
static if (isSomeFunction!fun) pragma(msg,...)
static if (isFunctionPointer!fun) pragma(msg,...)
static if (isCallable!fun) pragma(msg,...)
```

It output mostly true except in one case where the compiler 
really sees a function, not a pointer.

Thanks, now the difference is clear to me, Adam was right. I 
guess I have forgotten some version-switch somewhere and it tries 
to compile none-suitable code which will be never used in runtime 
at this point.

This would have been more visible if the compiler just says: 
"function cannot be compared against null, only function 
pointer". That function vs function pointer is too subtle.



More information about the Digitalmars-d-learn mailing list