练习16.32:
在模板实参推断过程中,编译器使用函数调用中的实参类型来寻找模板实参,用这些模板实参生成的函数版本与给定的函数调用最为匹配
练习16.33:
const转换:可以将一个非const对象的引用(或指针)传递给一个const的引用(或指针)形参
数组或函数指针转换:如果函数形参不是引用类型,则可以对数组或函数类型的实参应用正常的指针转换。一个数组实参转换为一个指向其首元素的指针。类似的,一个函数实参可以转换为一个该函数类型的指针
练习16.34:
(a):不合法,这是字符串字面值,相当于const char类型数组,由于形参是一个引用,无法将数组转换为指针,故不合法
(b):同上
练习16.35:
(a):合法,T为char
(b):合法,T为double
(c):合法,T为char
(d):不合法,传递给形参的实参具有不同的类型
练习16.36:
(a):T为int* ,调用函数为f1(int* ,int*)
(b):T1为int*,T2为int*,调用函数为f2(int* ,int*)
(c):T为const int*,调用函数为f1(const int* ,const int*)
(d):T1和T2都为const int*,调用函数为f2(const int* ,const int*)
(e):不合法,传递给形参的实参具有不同的类型,一个int*,一个const int*
(f):T1为int*,T2为const int*,调用函数为f2(int* ,const int*)