digitalmars.D.learn - Function pointer variable not recognized as function by is-operator
- Tommi (9/9) Oct 07 2012 The following compiles, which I'm pretty sure must be a bug,
- Jonathan M Davis (4/14) Oct 07 2012 It's not a bug. is(f == function) checks for functions, not function poi...
- Timon Gehr (3/17) Oct 07 2012 Actually is(f==function) checks whether or not f is a function type.
- Jonathan M Davis (5/29) Oct 07 2012 Ah. That's true. I should have caught that. Regardless, the types of fun...
The following compiles, which I'm pretty sure must be a bug, right? Just checking to be sure I won't be polluting the bug tracker. void main() { auto f = (int i) {}; static assert (!is(f == function)); // should fail static assert (!is(f == delegate)); }
Oct 07 2012
On Sunday, October 07, 2012 10:25:41 Tommi wrote:The following compiles, which I'm pretty sure must be a bug, right? Just checking to be sure I won't be polluting the bug tracker. void main() { auto f = (int i) {}; static assert (!is(f == function)); // should fail static assert (!is(f == delegate)); }It's not a bug. is(f == function) checks for functions, not function pointers. http://stackoverflow.com/questions/11067972 - Jonathan M Davis
Oct 07 2012
On 10/07/2012 10:35 AM, Jonathan M Davis wrote:On Sunday, October 07, 2012 10:25:41 Tommi wrote:Actually is(f==function) checks whether or not f is a function type. The ==function part is unimportant, because f is not even a type.The following compiles, which I'm pretty sure must be a bug, right? Just checking to be sure I won't be polluting the bug tracker. void main() { auto f = (int i) {}; static assert (!is(f == function)); // should fail static assert (!is(f == delegate)); }It's not a bug. is(f == function) checks for functions, not function pointers. http://stackoverflow.com/questions/11067972 - Jonathan M Davis
Oct 07 2012
On Sunday, October 07, 2012 10:42:49 Timon Gehr wrote:On 10/07/2012 10:35 AM, Jonathan M Davis wrote:Ah. That's true. I should have caught that. Regardless, the types of function pointers still won't be true for == function - e.g. is(typeof(f) == function) won't be true - because it's checking for functions, not function pointers. - Jonathan M DavisOn Sunday, October 07, 2012 10:25:41 Tommi wrote:Actually is(f==function) checks whether or not f is a function type. The ==function part is unimportant, because f is not even a type.The following compiles, which I'm pretty sure must be a bug, right? Just checking to be sure I won't be polluting the bug tracker. void main() { auto f = (int i) {}; static assert (!is(f == function)); // should fail static assert (!is(f == delegate)); }It's not a bug. is(f == function) checks for functions, not function pointers. http://stackoverflow.com/questions/11067972 - Jonathan M Davis
Oct 07 2012