這裏是一個非常簡單的例子:C++模板,而無需使用「&」不能推斷引用類型
#include <iostream>
template<typename T>
void DoubleMe(T x) {
x += x;
}
int main()
{
int a = 10;
DoubleMe(a);
std::cout << a; //displays 10 not 20!
}
的情況下這樣的,我是被迫在函數的參數,而不是用「T &」?因爲我已經閱讀過一些教程,通過在變量前面定義一個簡單的'T',模板可以正確地推導出適當的數據類型,包括T *,T []或T &。幫幫我?
編譯器如何可能推斷出您打算將參數作爲參考?你將如何編寫一個需要*非*參數參數的模板? (順便說一句,教程是錯誤的,投資一本書。) – molbdnilo
@molbdnilo推薦C++書籍最好伴隨着[此鏈接](http://stackoverflow.com/q/388242/1782465)。 – Angew
@molbdnilo感謝您的信息,真的很感激。但我告訴你,我閱讀的教程是高度評價的,因爲它是2011年10月份針對C++的最佳文章。這是它的確切引用:「模板參數類型T可以從T&,T *或T []」推斷出來。以下是可靠來源的鏈接:http://www.codeproject.com/Articles/257589/An-Idiots-Guide-to-Cplusplus-Templates-Part#PtrWithTempl – Loqz