Я путаюсь с приведенным ниже шаблоном поведения, где он компилируется с помощью пустых угловых скобок (шаблон без параметров) с синтаксически, шаблон < > зарезервирован для обозначения явной специализации шаблона.
template <typename T> void add(T a, T b) { }
int main() {
add<>(10, 3); // compiles fine since both parameters are of same data type
add<>(10, 3.2); // Error: no matching function for call to add(int, double)
}
В приведенном выше случае параметр шаблона действительно необязателен?