function is not function
bearophile
bearophileHUGS at lycos.com
Fri Sep 21 13:22:29 PDT 2012
Ellery Newcomer:
>> pragma(msg, typeof(a)); // void function()
Maybe pragma(msg) needs to print function pointer types with a
"*", to help remember it's a pointer:
int foo1() pure nothrow @safe { return 0; }
void main() {
static assert(is(typeof(foo1) == function));
auto foo2 = { return 0; };
static assert(is(typeof(*foo2) == function));
pragma(msg, typeof(foo1));
pragma(msg, typeof(foo2));
}
Prints:
pure nothrow @safe int()
int function() pure nothrow @safe
From such printout I am not able to tell the first one is a
function type and the second is the type of a function pointer :-(
Bye,
bearophile
More information about the Digitalmars-d-learn
mailing list