When the template function takes no arguments, the compiler requires that the template arguments be deducible. This is because without an arguement, the compiler would not be able to figure out what the arguments are. Thus for norm() the calles requires norm<T>().