0
似乎C++模板可以在只有一個模板參數時自動扣除類型。例如,具有多於1個類型名稱的模板函數
template<typename T>
void f(const T &t)
{
cout << t << endl;
}
f(1);
很好。
然而,
template<typename T1, typename T2>
void f(const T1 &t1, const T2 &t2)
{
cout << t1 << t2 << endl;
}
f(1, 2);
上述代碼無法通過編譯。這是因爲編譯器的能力還是違背了標準?
編譯器應該能夠推斷出多個模板參數。你能發佈完整的可編譯代碼來證明這個問題嗎? – 2011-01-23 16:27:23
據我所知,這段代碼沒有錯。 http://www.ideone.com/AEVs4 – 2011-01-23 16:29:22