https://issues.dlang.org/show_bug.cgi?id=11012
--- Comment #9 from Alexander <[email protected]> --- I'm not sure about it being a bug, though I was before. I think spec should be a little more explicit on the difference between function and function pointer types. For now, this templates solve all my problems: template isFunctionPointerType(T: FT*, FT) { enum isFunctionPointerType = is(FT == function); } template ReturnType(FuncType: FT*, FT) { static if (is(FT RT == return)) alias ReturnType = RT; else static assert(0, "FuncType must be function pointer type"); } template ParamTypes(FuncType: FT*, FT) { static if (is(FT Params == function)) alias ParamTypes = Params; else static assert(0, "FuncType must be function pointer type"); } --
