Code Bye

怎么样理解这句话

c++ primer中关于函数模板的描述。
函数模板实参推演的通用算法:
1)依次检查每个函数实参, 确定在每个函数实参的类型中出现的模板参数;
2)找到模板参数, 通过检查函数实参的类型, 推演相应的模板实参;
3)函数参数类型和函数实参类型可以转换: -左值转换 -限定修饰符转换 – 派生类到基类的转换;
4)假如在多个函数参数中找到同一个模板参数, 从每个相应函数实参推演出的模板参数必须相同(模板参数会被绑定在第一个类型上)
能不能结合一个例子说明一下第一句是什么意思?
解决方案

2

参考g++源代码相关片断。

2

有代码的结合代码应该比较好理解

14

template <class T1, class T2, int Count>
void foo(T1(&a)[Count], T2(&b)[Count + 1])
{
}
int main()
{
	int a[10];
	float b[11];
	foo(a, b);
}

a涉及模板参数T1和Count,b涉及T2和Count。然后能确定T1是int,T2是float,Count是10

2

这句话简直是不知所云,应该是翻译的问题,题主可以看一下原版

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么样理解这句话