Why not specialize function template