模板实例化的时候,尖括号可以省略吗?

1.为什么有些地方我看见省略了,有些地方不能省略
2.函数模板的非类型参数可以当做形参,传入函数吗,这样实例的时候直接在参数列表中赋值 如图
图片说明
图片说明

(1)关键看省略了会不会引起歧义,比如说
T foo()
你调用foo()没办法知道T是什么类型
void foo(T x)
你调用foo(1),自然T就是int。
再比如
void foo(T x)
void foo(A x)
构成重载,其中A是一个非模板的版本
A a;
foo(a);如果你这么写,是调用的谁就不知道了。

(2)可以,传入函数指针。