Since &main can't be a template value argument, maybe he meant this use case: alias int func(); void foo(alias T)() { static assert(is(typeof(T) == func)); } int main() { foo!main; return 0; }