1.從函數(shù)模板談起

函數(shù)模板的類型推導(dǎo)機(jī)制是在c++98時(shí)代就有的,auto的類型推導(dǎo)機(jī)制與其基本一致,所以先理解函數(shù)模板類型推導(dǎo)。

函數(shù)模板可以用如下代碼框架表示:

#template<typename T>void f(PT param);

f(expr);

PT與T的不同之處在于PT相對(duì)于T可能有一些飾詞(adornments),如const 和引用&。

對(duì)于模板類型T的推導(dǎo)是PT和expr共同作用的結(jié)果。下面分幾種情況討論類型推導(dǎo)的原則:

1)PT是一般的引用或指針

原則: