C++如果两个模板函数都与参数列表匹配,将调用哪个模板
C++ which template would be call if both template function match the argument list
template<class T>
void fn(T t){}
template<class T>
void fn(std::vector<T> vt){}
void f() {
std::vector<int> vt;
fn(vt);
}
我知道会调用第二个模板函数,但我不知道模板函数匹配的规则。
部分排序发生在调用函数模板专用化的重载解析中。
非正式地说,"A 比 B 更专业"意味着"A 接受的类型比 B 少"。
对于这种情况,第 2fn
更专业,并且在重载解析方面胜出,因为它
std::vector
实例化类型少于第 1 个实例化类型,而第 1 个实例化可以接受所有类型。相关文章:
- 没有为自己的结构调用列表推回方法
- 我使用向量来创建类对象列表.初始化向量时如何使用参数调用构造函数?
- 如何在C++中调用列表中的某个值
- 调用重载的"<大括号括起来的初始值设定项列表>"对于对来说就足够了是模棱两可的
- 在初始化列表之外手动调用基类的构造函数
- C++:带有大括号初始化列表的函数调用表达式 - 标准是否规定在单个元素列表的微不足道的情况下忽略大括号?
- C++如果两个模板函数都与参数列表匹配,将调用哪个模板
- 如何获取列表的每个对象并调用getName方法来打印其名称
- 递归列表:调用析构函数的所有内容
- 推力(cuda)错误:无法使用给定参数列表调用函数
- 带有模板的链接列表:调用到隐式删除的默认构造函数
- C++构造函数初始化列表调用默认构造函数.为什么
- 通过初始化列表调用另一个类的构造函数.有问题
- Windows 通用应用 (XAML):不能使用给定的参数列表调用文本块>文本
- 从向量列表调用成员函数指针
- C++错误,显示创建链接列表调用"error LinkedList Interface is an inaccessable base of linkedlist"
- 为c++中的对象列表调用object方法
- 从构造函数初始化列表调用重载构造函数
- 正在对空的初始值设定项列表调用std::min(并显式指定类型)未定义的行为
- 任何在构造函数之前证明初始化列表调用的例子