// non-type partial specialization 'func' is not allowed
Буквально значит, что язык позволяет определить частичную специализацию только для пользовательского типа.
Частичная специализация функции запрещена.
Общий вид частичной специализации можно посмотреть
здесь. Видно, что в определениях есть непустые угловые скобки после
template
и после имени, как и в примере из вопроса.
Значит, скобки после имени функции в определении не нужны, если это не полная специализация. И в полной специализации скобки опускают, если тип выводится из типов аргументов (
пример).