4
何時可以省略C++模板參數列表?例如,在Visual Studio 2010中這一段代碼編譯罰款:省略C++模板參數列表時的區別
template<class T>
Vec2<T> Vec2<T>::operator+ (const Vec2 &v) const
{
return Vec2(x + v.x, y + v.y);
}
如果內嵌代碼,它實際上編譯沒有任何參數列表。但這是否與以下版本一樣?
template<class T>
Vec2<T> Vec2<T>::operator+ (const Vec2<T> &v) const
{
return Vec2<T>(x + v.x, y + v.y);
}
好的,所以我猜想,即使第一個版本沒有在任何地方使用參數進行編譯,但在類的外部聲明/定義成員函數時,它可能是很好的風格。謝謝! – George 2010-09-11 10:03:30
我錯過了一些東西。所以簡短的答案是:你的兩個版本是相同的。 – Danvil 2010-09-11 10:19:37
我在搜索[cppreference.com](http://www.cppreference.com)的時候找到了這個問題/答案,但找不到任何答案。它只是沒有在該網站上提及,還是我忽略了它?特別是我對技術原因感興趣。例如:參數列表在實例化類的範圍內計算(因此'A' ='A'),但返回值不是。 (這感覺不一致,因爲兩者都構成了方法的簽名,不是嗎?) –
2015-07-19 07:22:31