练习16.42:
(a):T的类型为int&,val的类型为int&型左值
(b):T的类型为const int&,val的类型为const int&型左值
(c):T的类型为int,val的类型为int型右值int&&
练习16.43:
i=ci得到新的左值i,所以g的模板参数T是int&
练习16.44:
如果g的函数声明为T,则
(a):T的类型为int,val的类型为int型
(b):T的类型为int,val的类型为int型
(c):T的类型为int,val的类型为int型
如果g的函数声明为const T&,则
(a):T的类型为int,val的类型为const int&型
(b):T的类型为int,val的类型为const int&型
(c):T的类型为int,val的类型为const int&型
练习16.45:
对字面常量42调用g:模板参数T会被推导为int型,val会被推导为int&&型,得到vector
对int型变量调用g:模板参数T会被推导为int&型,val会被折叠为int&型,得到vector