Do I need to use template overloads instead of for all cases in comuteHash, or only for enums?