Something along the lines of static if(__traits(compiles, __traits(getMember, Foo, member)) static if(is(__traits(getMember, Foo, member) == function)) { // use it } The __traits(compiles, ...) is my go-to thingy for filtering out random errors.