我有 2 个重载函数模板:
template <class typ1, class typ2>
void szab(typ1, typ2) {cout << "2 typy" << endl;}
template <class typ1>
void szab(typ1, typ1) {cout << "1 typ" << endl;}
为什么当我调用这样的函数时没有歧义:szab(1, 1);
?第二个模板不是第一个模板的特殊版本吗?当我在模板中声明 2 个参数时,这并不意味着它们必须是不同的类型,它们只是可以。那么为什么编译器会选择第二个模板呢?