isFunctionPointer

Detect whether symbol or type T is a function pointer.

template isFunctionPointer (
T...
) if (
T.length == 1
) {
enum bool isFunctionPointer;
enum bool isFunctionPointer;
enum bool isFunctionPointer;
}

Examples

static void foo() {}
void bar() {}

auto fpfoo = &foo;
static assert( isFunctionPointer!fpfoo);
static assert( isFunctionPointer!(void function()));

auto dgbar = &bar;
static assert(!isFunctionPointer!dgbar);
static assert(!isFunctionPointer!(void delegate()));
static assert(!isFunctionPointer!foo);
static assert(!isFunctionPointer!bar);

static assert( isFunctionPointer!((int a) {}));

Meta

Suggestion Box / Bug Report